403Webshell
Server IP : 121.121.20.254  /  Your IP : 216.73.216.202
Web Server : Microsoft-IIS/10.0
System : Windows NT WEB-SERVER 10.0 build 20348 (Windows Server 2022) AMD64
User : IUSR ( 0)
PHP Version : 8.3.28
Disable Function : NONE
MySQL : ON  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  C:/Python312/Lib/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : C:/Python312/Lib/test/__pycache__/test_xml_etree.cpython-312.opt-2.pyc
�

���gt�����ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
mZddlZddlZddlmZddlmZddlmZmZddlmZddlmZddlmZddlmZmZmZmZdd	lm Z dd
l!m"Z"da#da$edd�
�Z%	e%jMd�edd�
�Z)edd�
�Z*dZ+dZ,dZ-dZ.dZ/dZ0dZ1d�Z2d�Z3dd�d�Z4d�Z5Gd�d ejl�Z7dud"�Z8d#�Z9Gd$�d%�Z:Gd&�d'ejl�Z;Gd(�d)ejl�Z<iZ=d*e=d+<d,e=d-<d.e=d/<d0e=d1<d2e=d3<d4e=d5<d6e=d7<d8e=d9<d:j}ej~e%d!��e=d;<d<e=d=<iZ@d>e@d?<d@e@dA<dBe=dC<dDe=dE<dFe=dG<GdH�dIejl�ZAGdJ�dKejl�ZBGdL�dMe:ejl�ZCGdN�dOe:ejl�ZDGdP�dQeE�ZFGdR�dSeE�ZGGdT�dUeE�ZHGdV�dWe:ejl�ZIGdX�dYejl�ZJGdZ�d[ejl�ZKGd\�d]ejl�ZLGd^�d_ejl�ZMGd`�daejl�ZNGdb�dcejl�ZOGdd�deejl�ZPGdf�dgejl�ZQGdh�diejl�ZRGdj�dkejl�ZSGdl�dmejl�ZTGdn�doejl�ZUdp�ZVGdq�drejl�ZWdvds�ZXeYdtk(rej��yy#e'$rejPd��wxYw)w�N)�nullcontext)�partial)�product�islice)�support)�	os_helper)�warnings_helper)�findfile�
gc_collect�	swap_attr�	swap_item)�import_fresh_module)�TESTFNz
simple.xml�xmltestdata��subdir�utf-8z!filename is not encodable to utf8z
simple-ns.xmlzexpat224_utf8_bug.xmlz�<body>
  <tag class='a'>text</tag>
  <tag class='b' />
  <section>
    <tag class='b' id='inner'>subtext</tag>
  </section>
</body>
zz<section>
  <tag class='b' id='inner'>subtext</tag>
  <nexttag />
  <nextsection>
    <tag />
  </nextsection>
</section>
zy
<body xmlns="http://effbot.org/ns">
  <tag>text</tag>
  <tag />
  <section>
    <tag>subtext</tag>
  </section>
</body>
z�
<root>
<h:table xmlns:h="hello">
  <h:tr>
    <h:td>Apples</h:td>
    <h:td>Bananas</h:td>
  </h:tr>
</h:table>

<f:table xmlns:f="foo">
  <f:name>African Coffee Table</f:name>
  <f:width>80</f:width>
  <f:length>120</f:length>
</f:table>
</root>
zy<!DOCTYPE points [
<!ENTITY % user-entities SYSTEM 'user-entities.xml'>
%user-entities;
]>
<document>&entity;</document>
zl<!DOCTYPE points [
<!ENTITY entity SYSTEM "file:///non-existing-file.xml">
]>
<document>&entity;</document>
z�<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Foo [
<!ELEMENT foo (bar*)>
<!ELEMENT bar (#PCDATA)*>
<!ATTLIST bar xml:lang CDATA "eng">
<!ENTITY qux "quux">
]>
<foo>
<bar>&qux;</bar>
</foo>
c��ttuS�N��ET�pyET���(C:\Python312\\Lib\test\test_xml_etree.py�is_python_implementationr~s����:�rc�b�	|j}tjj|dd|��S)N�__eq__T)�autospec�wraps)r�mock�patch�object)�cls�eqs  r�
equal_wrapperr&�s0���

���B��:�:���S�(�T���D�DrF)�quietc������fd�}|S)Nc�D������fd�}tj|��|S)Nc�j��tj�d�i�5�|i|��ddd�y#1swYyxYw)Nr')r	�check_warnings)�args�kwargs�filtersr'�tests  ���r�newtestz1checkwarnings.<locals>.decorator.<locals>.newtest�s0��� �/�/��F��F��d�%�f�%�G�F�F�s�	)�2)�	functools�update_wrapper)r/r0r.r's` ��r�	decoratorz checkwarnings.<locals>.decorator�s���	&�	� � ��$�/��rr)r'r.r3s`` r�
checkwarningsr4�s�����rc�^�|jdtjj��S)N�
)�replace�os�linesep�encode)�datas r�convlinesepr<�s ���<�<��r�z�z�0�0�2�3�3rc��eZdZd�Zd�Zy)�
ModuleTestc�(�ddlm}ddlm}ddlm}y)Nr)�ElementTree��ElementInclude��ElementPath)�	xml.etreer@rBrD)�selfr@rBrDs    r�test_sanityzModuleTest.test_sanity�s
��	*�,�)rc�B�d}tj|t|d��y)N)�xml.etree.ElementTree�_elementtree)�
HTML_EMPTY)�not_exported)r�check__all__r)rF�namess  r�test_allzModuleTest.test_all�s��9�����T�2�u�?�KrN)�__name__�
__module__�__qualname__rGrOrrrr>r>�s
��*�Lrr>Tc��|dk7rtj�}ntj�}tj	|�}|j
|fd|i|��|r|j
�S|jd�|S)N�unicode�encodingr)�io�BytesIO�StringIOrr@�write�getvalue�seek)�elem�	to_stringrU�options�file�trees      r�	serializera�se���9���z�z�|���{�{�}��
�>�>�$��D��D�J�J�t�2�h�2�'�2���}�}����	�	�!���rc�@�|D�cgc]}|j��c}Scc}wr��tag)�seqr\s  r�summarize_listrf�s��!$�%���D�H�H��%�%��%��c�(�eZdZed��Zd�Zd�Zy)�ElementTestCasec�&�tth|_yr)rr�modules�r$s r�
setUpClasszElementTestCase.setUpClass�s
���R�j��rc��	ttj||�5tj||�}ddd�ttj||�5tj
�}ddd�|S#1swY�DxYw#1swYSxYw#tj$r]}ttdftdfg�}	tjd|�d|	j||��d|	j||����|�d}~wwxYw)N�cETrzFailed to round-trip z from z to )
r
�sysrk�pickle�dumps�loads�
PicklingError�dictrrr�
TestFailed�get)
rF�obj�name�dumper�loader�proto�temp�result�pe�humans
          r�pickleRoundTripzElementTestCase.pickleRoundTrip�s���	L��3�;�;��f�5��|�|�C��/��6��3�;�;��f�5����d�+��6��
�6�5��5��
���#�#�	L��2�u�+��f�~�6�7�E��$�$�(+�(-�	�	�&�&�(A�(-�	�	�&�&�(A�&C�D�JL�
L��	L�sL�B�A7�#B�B�-B�7B�<B�B
�B�
B�D�#AC;�;Dc���|j|tjtjf�|j|tjtjf�|j	tt
|��tt
|���t||�D]\}}|j||��tjdddd�}|j	||�||��y)Nrd�tail�text�attrib)�assertIsInstancer�Elementr�assertEqual�len�list�zip�assertEqualElements�operator�
attrgetter)rF�alice�bob�x�y�
propertiess      rr�z#ElementTestCase.assertEqualElements�s������e�b�j�j�$�,�,�%?�@����c�B�J�J����#=�>�����T�%�[�)�3�t�C�y�>�:���s�O�D�A�q��$�$�Q��*�$��(�(�����I�
�����E�*�J�s�O�<rN)rPrQrR�classmethodrmr�r�rrrriri�s���!��!�
�=rric��eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z!d �Z"d!�Z#d"�Z$d#�Z%d$�Z&d%�Z'd&�Z(d'�Z)d(�Z*d)�Z+d*�Z,d+�Z-d,�Z.d-�Z/y.)/�ElementTreeTestc�:�|jt|�|�yr)r�ra)rFr\�expecteds   r�serialize_checkzElementTreeTest.serialize_check�s������4��(�3rc�������fd��tjd�}�|�tj|�}�|j��tjdd��}tj|�}�j	t|�d�tjdd��}�fd���|j��|j��|j��|j��|j��|j��|j��|j��|j��|j��|j ��|j"��|j$��|j&��|j(��fd�}||jd��||jd	��||jd��||jd	���j+tj,tj.��j+tj0tj2�y)
Nc�2���jtj|�d��t|�}dD]9}�jt	||�d|z���j||d|z���;�j
|jt��j
|jt�|j� �j
|jt�|j� �j
|jt�|D]
}�|��y)Nznot an element��msg)rdr�r�r�zno %s memberzno %s visible by dir)
�
assertTruer�	iselement�dir�hasattr�assertInr�rd�strr�rur�r�)�element�direlem�attrr\�
check_elementrFs    ��rr�z5ElementTreeTest.test_interface.<locals>.check_element�s�����O�O�B�L�L��1�7G�O�H��'�l�G�7�������� 6�*�T�1� �3��
�
�d�G�2�T�9��;�8�
�!�!�'�+�+�s�3��!�!�'�.�.�$�7��|�|�'��%�%�g�l�l�C�8��|�|�'��%�%�g�l�l�C�8����d�#� rrd�täg�value��keyz^<Element 't\xe4g' at 0x.*>$c�F���jt|d�d|z��y)N�__call__z%s not callabler�)r�r�)�methodrFs �r�check_methodz4ElementTreeTest.test_interface.<locals>.check_method�s%����O�O�G�F�J�7�)�F�2�
�
4rc�*���|j�yr)�__next__)�itr�s �r�
check_iterz2ElementTreeTest.test_interface.<locals>.check_iters�������%r�*)rr�r@�getroot�assertRegex�repr�append�extend�insert�remove�find�iterfind�findall�findtext�clearrw�set�keys�items�iter�itertextr��XML�
fromstring�PI�ProcessingInstruction)rFr�r`r�r�r�s`   @@r�test_interfacezElementTreeTest.test_interface�s����	$�$�*�*�U�#���g���~�~�g�&���d�l�l�n�%��*�*�X�7�*�3���~�~�g�&������g��(G�H��*�*�U��*�0��	4�	�W�^�^�$��W�^�^�$��W�^�^�$��W�^�^�$��W�\�\�"��W�%�%�&��W�_�_�%��W�%�%�&��W�]�]�#��W�[�[�!��W�[�[�!��W�\�\�"��W�]�]�#��W�\�\�"��W�%�%�&�	&�	�7�#�#�E�*�+��7�#�#�C�(�)��4�=�=��'�(��4�=�=��%�&�	
���������/�������� 8� 8�9rc�R�tjd�}|j|jd�d|_|j|jd�d|_|j|jd�|j	|j
�d|_|j|j
d�d|_|j|j
d�|j	|j�d|_|j|jd�d|_|j|jd�|j|ji�dd	d
�|_|j|jdd	d
��ddd
�|_|j|jddd
��y)Nrd�Tag�TAG�Text�TEXT�Tail�TAIL�b�d)�a�c�B�D)�A�C)rr�r�rd�assertIsNoner�r�r�)rFr�s  r�test_set_attributez"ElementTreeTest.test_set_attribute sH���*�*�U�#��������e�,����������e�,����������e�,����'�,�,�'����������v�.����������v�.����'�,�,�'����������v�.����������v�.��������,�"��-���������s��)=�>�"��-���������s��)=�>rc��tjd�}|j|d�tjd�}|j	|�|j|d�|j|�|j|d�|j
d|�|j|d�|j|�|j|g�|j|d�|j|�|jt|g��|j|d�|j|�tjdd�	�}|j|d
�tjd�}|j	|�|j|d�|j
d|�|j|d
�|j|�|j|d�|j|�|j|d
�|jt�5}|j|�ddd�|jtj�d�|j|d
�|||g|dd|j|dd�|j|dd|d|dg�|j|ddd�|d|dg�|dd�=|j|d
�y#1swY��xYw)N�<body><tag/></body>�<body><tag /></body>�tag2z<body><tag /><tag2 /></body>rz<body><tag2 /><tag /></body>rdr�r�z<tag key="value" />�subtagz!<tag key="value"><subtag /></tag>z+<tag key="value"><subtag /><subtag /></tag>zlist.remove(x): x not in list�z
<subtag />�	�)rr�r�r�r�r�r�r�r��assertRaises�
ValueErrorr�r��	exception)rFr\�er��
subelement�cms      r�test_simpleopszElementTreeTest.test_simpleops;sx���v�v�+�,�����T�#9�:��J�J�v������A�����T�#A�B����A�����T�#9�:����A�q�����T�#A�B����A�����Q�C�����T�#A�B����A�����D�!��I�����T�#A�B����A���*�*�U��*�0�����W�&;�<��Z�Z��)�
����z�"����W�&I�J����q�*�%����W�=�	?����z�"����W�&I�J����z�"����W�&;�<�
�
�
�z�
*�b��N�N�:�&�+�����R�\�\�*�,K�L����W�&;�<�"�J�
�;���!�����W�Q�Z��6������1����
�G�A�J�'?�@������!�A������W�Q�Z�(@�A��A�a�C�L����W�=�	?�+�
*�s�K�Kc���|jtjd�d�|jtjd�d�|jtjd�d�y)Nz<tag>hello</tag>z)<tag>&#104;&#101;&#108;&#108;&#111;</tag>z<tag><![CDATA[hello]]></tag>)r�rr��rFs r�
test_cdatazElementTreeTest.test_cdatags[��	
���R�V�V�$6�7�"�	$����R�V�V�$O�P�"�	$����R�V�V�$B�C�"�	$rc��tjtjd��}tj|��}|j
|jd�jd�|j
|jd�jd�tjt��}|j
|jd�jd�|j
|jd�jd�y)Nr)r_rd�section/tagr�zelement/../empty-element�
empty-element)
rVrW�
SAMPLE_XMLr:rr@r�r�rd�SIMPLE_XMLFILE)rF�
stringfiler`s   r�test_file_initzElementTreeTest.test_file_initqs����Z�Z�
� 1� 1�'� :�;�
��~�~�:�~�.��������5�)�-�-�u�5�������=�1�5�5�u�=��~�~�>�~�2��������9�-�1�1�9�=�������#=�>�B�B��	!rc�~�ddlm}tjt�}|j
j
�td�D]2}tj|�jdt|�z��4t|j
�}td�D]2}tj|�jdt|�z��4|jt|j
�|�td�D]2}tj|�jdt|�z��4|jt|j
�|�td�D]2}tj|�jdt|�z��4|jt|j
�d�y)NrrC�
z./�iXi�)rErDrr�r��_cacher��ranger@r�r�r�r��
assertGreater�
assertLess)rFrDr\�i�cache_len_10s     r�test_path_cachezElementTreeTest.test_path_cache|s*��	*��v�v�j�!����� � �"��r��A�B�N�N�4�0�5�5�d�3�q�6�k�B���;�-�-�.���r��A�B�N�N�4�0�5�5�d�3�q�6�k�B������[�/�/�0�,�?��r��A�B�N�N�4�0�5�5�d�3�q�6�k�B�����3�{�1�1�2�L�A��s��A�R�^�^�D�1�6�6�t�C��F�{�C������K�.�.�/��5rc��ddl}tjd�}|j|�}|j|�}d|j	d�_|j
|d�|j
|d�|j
|d�y)Nrz<tag>hello<foo/></tag>�bar�fooz<tag>hello<bar /></tag>z<tag>hello<foo /></tag>)�copyrr��deepcopyr�rdr�)rFr�e1�e2�e3s     r�	test_copyzElementTreeTest.test_copy�sx��	�
�V�V�,�
-��
�T�Y�Y�r�]��
�T�]�]�2�
��"����������R�!:�;����R�!:�;����R�!:�;rc�8�tjd�}|jd�|j|jdd�d�|j	dd�|j|jd�d�tjdd��}|j|jd�d�|j|j
ddi�ddi}tjd|�}|j
�|j|jd�d�|j|j
ddi�ddi}tjdi|��}|j
�|j|jd�d�|j|j
ddi�tjdddid��}|j|jd�d�|j|j
ddi�tjd�}d|_|j	d	d
�|j	dd�|jtj|�d
�|jt|j��d	dg�|jt|j��ddg�|j|j
dd�d|j
d<d|j
d<|jtj|�d�tjd�}|j	dd�|j	dd�|j	dd�|j	dd�|jtj|�d�y)Nrdr��defaultr�r��otherr/�aa�testa�testval�testb�test2s-<test testa="testval" testb="test2">aa</test>)rr
)rr�test1�testcs;<test testa="testval" testb="test1" testc="test2">aa</test>r��
r��
r�z	

 r�z



		  s[<test a="&#13;" b="&#13;&#10;" c="&#09;&#10;&#13; " d="&#10;&#10;&#13;&#13;&#09;&#09;  " />rc)rr�rwr�r�r�r�r��tostring�sortedr�r�)rFr\r�s   r�test_attribzElementTreeTest.test_attrib�s����z�z�%� �������������%��3�Y�?������ �������%��'�2��z�z�%�W�z�-��������%��'�2�������u�g�&6�7���!���z�z�%��(������������%��'�2�������u�g�&6�7���!���z�z�*�6�*������������%��'�2�������u�g�&6�7��z�z�%�%��!1�w�z�?��������%��'�2�������u�g�&6�7��z�z�&�!����	�����)�$�����'�"�������T�*�@�	B������	�	��,�w��.@�A������
�
��-�%�'9�:�	<�������W�-�w�7�&����G��&����G��������T�*�N�	P��z�z�&�!������d������f������i� �����&�'�������T�*�n�	prc�"�tjd�}ddi}|jd|�}|j|j|d��|j|�|j
|d�|j�|j
|d�|j|�|j
|d�|j||g�|j
|d	�|g|dd|j
|d�t|g�|dd|j
|d�y)
Nrdr�r�r�zattrib aliasingr�z!<tag><subtag key="value" /></tag>�<tag />zM<tag><subtag key="value" /><subtag key="value" /><subtag key="value" /></tag>)
rr��makeelement�assertIsNotr�r�r�r�r��tuple)rFr\r��subelems    r�test_makeelementz ElementTreeTest.test_makeelement�s����z�z�%� ����!���"�"�8�V�4���������5F��G����G�����T�#F�G��
�
�����T�9�-����G�����T�#F�G����W�g�&�'����T�[�	]��)��Q�����T�#F�G���	�"��Q�����T�#F�Grc�d�tjt�}tj�}|j|d��|j
|j�d�tjt�}tj�}|j|d��|j
|j�d�tt�5}|j�}ddd�tj�}|j|jd�|j�|j|j!�d�tj#�}tj|��}|j|�|j|j!�d�y#1swY��xYw)NrT�rUzi<root>
   <element key="value">text</element>
   <element>text</element>tail
   <empty-element />
</root>z�<ns0:root xmlns:ns0="namespace">
   <ns0:element key="value">text</ns0:element>
   <ns0:element>text</ns0:element>tail
   <ns0:empty-element />
</ns0:root>z^Expat ��target)r�parser�rVrXrYr�rZ�SIMPLE_NS_XMLFILE�open�read�	XMLParserr��version�feedr��close�TreeBuilder)rFr`�stream�fr;�parserr!s       r�test_parsefilezElementTreeTest.test_parsefile�sC���x�x��'��������
�
�6�I�
�.�������*��	��x�x�)�*��������
�
�6�I�
�.�������*��	��.�
!�Q��6�6�8�D�"�������������4����D�����V�\�\�^��	����!�����V��,�����D�����V�\�\�^��	�!"�
!�s�F&�&F/c�.�tjd�}|jtj|d��d�tj	d�}|jtj|d��d�gd�}tj|�}|jtj|�d�|jdj
tj|��d�|jtj|d�d�tjd�\}}|jt|�d	�tjd
�\}}|jt|�d�|j|djd�y)
N�<html><body>text</body></html>rTr)z<html><body>ztext</boz
dy></html>�<html><body>text</body></html>r�asciisE<?xml version='1.0' encoding='ascii'?>
<html><body>text</body></html>rz(<html><body id='body'>text</body></html>r��body)rr�r�rr��fromstringlist�join�tostringlist�XMLIDr�rd)rFr��sequence�_�idss     r�test_parseliteralz!ElementTreeTest.test_parseliterals>���&�&�9�:��������W�y��A�0�	2��-�-� @�A��������W�y��A�0�	2�=���#�#�H�-��������W�-�1�	3�������"�/�/�'�":�;�1�	3�������W�g�6�2�	3����:�;���3�����S��1�%����D�E���3�����S��1�%�����V����&�1rc��tj}|t�}|j|j�t|�\}}|j|j�|j
||jfd�|j
|D��cgc]\}}||jf��c}}gd��|j
|jjd�|t�}|j
|D��cgc]\}}||jf��c}}gd��d}|t|�}|j
|D��cgc]\}}||jf��c}}g�d}|t|��}|j
|D��cgc]\}}||jf��c}}g�d}|t|�}|j
|D��cgc]\}}||jf��c}}gd��d	}|t|�}|j
|D��cgc]\}}|dvr||jfn||f��c}}gd
��d}|tjd�|�}|D��cgc]\}}|��	}}}|j
|d
dg�d}ttd�5}|jt�5}|||�ddd�|j|j�ddd�|j
t!j"�d�t%j&|�5|jt�5}|t|�ddd�|j
t!|j"�d�~ddd�tj(d�}	d}||	|�}|j
|D��cgc]	\}}||f��c}}ddg�tjd�}	||	�}
t|
�\}}|j
||jfd�|jtj*�5}t|
�ddd�|j
t!j"�d�|j-t.j0t2�tt2d�5}|j5d�ddd�|t2�}
t|
�\}}|j
||jfd�t%j&|�5|jtj*�5}t|
�ddd�|j
t!|j"�d�~~
ddd�t%j&|�5|t2�}
~
ddd�|jt6�5|d�ddd�ycc}}wcc}}wcc}}wcc}}wcc}}wcc}}wcc}}w#1swY��%xYw#1swY��xYw#1swY���xYw#1swY���xYwcc}}w#1swY���xYw#1swY��}xYw#1swY��	xYw#1swY��xYw#1swY��xYw#1swYyxYw)N��endr�)r=�r>r��r>�rootrA)�r>�{namespace}elementrB�r>�{namespace}empty-element�r>�{namespace}rootr��events��startr>��rKrA�rKr�r=rNr=)rKr�r?r@)rKr>�start-ns�end-ns)
�rO)��	namespace�rKrG�rKrCrBrUrB�rKrErDrF�rPN�rOrPz<root xmlns=''/>rOrP�rKr>�bogus�rbzunknown event 'bogus's�<?xml version='1.0' encoding='iso-8859-1'?>
<body xmlns='http://&#233;ffbot.org/ns'
      xmlns:cl�='http://effbot.org/ns'>text</body>
)rO)rO)rRuhttp://éffbot.org/ns)rO)uclé�http://effbot.org/nsz<document />junk)r>�documentz.junk after document element: line 1, column 12�wbs<document />junk�nonexistent)r�	iterparser�r�rA�nextr�rdr#rVrXr$r�r��assertFalse�closedr�r�r	�check_no_resource_warningrW�
ParseError�
addCleanupr�unlinkrrY�FileNotFoundError)rFr`�context�actionr\rI�resr,r��sourcer�s           r�test_iterparsezElementTreeTest.test_iterparse'sm���L�L�	��N�+�����'�,�,�'��G�}�������'�,�,�'����&�$�(�(�+�-?�@�����I�����6�4�8�8�,��I�L�	�
	
������)�)�6�2��-�.������I�����6�4�8�8�,��I�L�	����N�F�3������I�����6�4�8�8�,��I�2�N����N�6�:������I�����6�4�8�8�,��I�2�N�!���N�F�3������I�����6�4�8�8�,��I�	L�		�8���-�v�6�����.5�7�.5�l�f�d�17�:J�0J�6�4�8�8�,�39�4�.�A�.5�7�9�
	�(���B�K�K�(;�<�f�E��*1�2�'�,�&�$�v�'��2�����z�8�4�5�*��
�.�$�
'�1��"�"�:�.�"��!�V�$�/����Q�X�X�&�(�	
����R�\�\�*�,C�D�
�
6�
6�t�
<��"�"�:�.�"��.�&�1�/����S����.�0G�H��	=����
G�H�����F�F�+�����W�E�W�\�V�T�6�4�.�W�E�=�@�H�	�
���/�0��
�v�
���B�x�������&�$�(�(�+�-@�A�
�
�
�r�}�}�
-����H�.�����R�\�\�*�@�	B�	
���	�(�(�&�1�
�&�$�
�1�
�G�G�'�(� �
�v�
���B�x�������&�$�(�(�+�-@�A�
�
6�
6�t�
<��"�"�2�=�=�1�R��R��2����S����.�D�
F��B�=��
6�
6�t�
<��6�"�B��=��
�
�0�
1��m�$�2�
1��[J��J��J��J��J��7��"3�
/�.��(�
'��/�.��=�
<��F�.�
-�� �
��2�1��=�
<��=�
<��2�
1�s��V
�4V
�6V!
�7V'
�7V-
�9 V3
�V9�<W�
V?�#W�W&�W�%.W&�W3
�W9�9X�  X �X�/X �X,�	X8�?W		�W�W�W#	�W&�&W0�9X�X�X	�X � X)�,X5�8Yc��tjd�}d|_|j|d�dtj	|d�_|j|d�d|_|j|d�|j
dtjd	��|j|d
�tjdd�|d<|j|d
�y)Nrdr�z<tag>text</tag>�subtextr�z'<tag>text<subtag>subtext</subtag></tag>ztext<subtag>subtext</subtag>r�commentz*text<!--comment--><subtag>subtext</subtag>r�r�z)text<?key value?><subtag>subtext</subtag>)	rr�r�r��
SubElementrdr��Commentr��rFr\s  r�test_writefilezElementTreeTest.test_writefile�s����z�z�%� ����	����T�#4�5�-6��
�
�d�H�%�*����T�#L�M�������T�#A�B����A�r�z�z�)�,�-����T�<�	>��%�%��w�'��Q�����T�#N�Orc��tt�5}|j�}ddd�Gd�dt�}|�}tj|��}|j
�|j|gd��tt�5}|j�}ddd�Gd�dt�}|�}tj|��}|j
|�|j|gd��y#1swY��xYw#1swY�gxYw)Nc��eZdZd�Zd�Zd�Zy)�4ElementTreeTest.test_custom_builder.<locals>.Builderc�*�|jd|f�y�NrK�r��rFrdr�s   rrKz:ElementTreeTest.test_custom_builder.<locals>.Builder.start�������W�c�N�+rc�*�|jd|f�y�Nr>rz�rFrds  rr>z8ElementTreeTest.test_custom_builder.<locals>.Builder.end�������U�C�L�)rc��yrr�rFr�s  rr;z9ElementTreeTest.test_custom_builder.<locals>.Builder.data����rN)rPrQrRrKr>r;rrr�Builderrw�s��
,�
*�
rr�r rLc�6�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	y)	rwc�*�|jd|f�yryrzr{s   rrKz:ElementTreeTest.test_custom_builder.<locals>.Builder.start�r|rc�*�|jd|f�yr~rzrs  rr>z8ElementTreeTest.test_custom_builder.<locals>.Builder.end�r�rc��yrrr�s  rr;z9ElementTreeTest.test_custom_builder.<locals>.Builder.data�r�rc�,�|jd||f�y)N�pirz)rFr!r;s   rr�z7ElementTreeTest.test_custom_builder.<locals>.Builder.pi�s�����T�6�4�0�1rc�*�|jd|f�y)Nrprz)rFr;s  rrpz<ElementTreeTest.test_custom_builder.<locals>.Builder.comment�s�����Y��-�.rc�,�|jd||f�y)NrOrz)rF�prefix�uris   r�start_nsz=ElementTreeTest.test_custom_builder.<locals>.Builder.start_ns�s�����Z���5�6rc�*�|jd|f�y�NrPrz�rFr�s  r�end_nsz;ElementTreeTest.test_custom_builder.<locals>.Builder.end_ns�������X�v�.�/rN)
rPrQrRrKr>r;r�rpr�r�rrrr�z4ElementTreeTest.test_custom_builder.<locals>.Builder�s%��
,�
*�
�
2�
/�
7�
0r))r�r�r;)rp�	 comment )rOrRrSrTrUrBrUrBrVrDrF�rPrR)	r$r�r%r�rr&r(r�r#)rFr,r;r��builderr-s      r�test_custom_builderz#ElementTreeTest.test_custom_builder�s����.�
!�Q��6�6�8�D�"�	�d�	��)�����W��-�����D������	#�		��#�
$���6�6�8�D�%�	0�d�	0��)�����W��-�����D������
#�
	�W"�
!��.%�
$�s�C4�	D�4C=�D	c���Gd�dt�}|�}tj|��}|jt	j
d��|j
|gd��y)Nc��eZdZd�Zy)�@ElementTreeTest.test_custom_builder_only_end_ns.<locals>.Builderc�*�|jd|f�yr�rzr�s  rr�zGElementTreeTest.test_custom_builder_only_end_ns.<locals>.Builder.end_ns�r�rN)rPrQrRr�rrrr�r��s��
0rr�r a            <?pi data?>
            <!-- comment -->
            <root xmlns='namespace' xmlns:p='pns' xmlns:a='ans'>
               <a:element key='value'>text</a:element>
               <p:element>text</p:element>tail
               <empty-element/>
            </root>
            ))rPr�)rP�pr�)r�rr&r(�textwrap�dedentr�)rFr�r�r-s    r�test_custom_builder_only_end_nsz/ElementTreeTest.test_custom_builder_only_end_ns�sZ��	0�d�	0��)�����W��-�����H�O�O�%��	�	
����#�	rc��tjd��}|j|jtj�tj�}|j|jtj�y)Nr )rr&r�r!r*)rFr-�parser2s   r�%test_initialize_parser_without_targetz5ElementTreeTest.test_initialize_parser_without_targetsO�����T��*�����f�m�m�R�^�^�<��,�,�.�����g�n�n�b�n�n�=rc�>�ttd�5}tj|�}ddd�|j	j�j
�D�cgc]
}t|���c}gd�gggg�|j	|j
�D�cgc]
}t|���c}gd�gggg�tjt�}|j	tt|��d�|j	tt|d��d�|j	|ddt|��|d}|d}|dd�=|j	tt|��d�|j	||d�|j	||d�||g|dd|j	||d�|j	||d�|j||d�|j�|j	t|�g�y#1swY���xYwcc}wcc}w)Nr[)r�r�r��r�r�r)r$r�rr"r�r�r�rfr�r�r�r��assertNotEqualr�)rFr,r`r\�child1�child2s      r�
test_childrenzElementTreeTest.test_childrens����.�$�
'�1��8�8�A�;�D�(����&*�l�l�n�&9�&9�&;�=�&;�d�)��.�&;�=�7����	?�	�	
���&*�i�i�k�3�&1�d�)��.�&1�3�7����	5�	��v�v�j�!������T�$�Z��!�,�����T�$�q�'�]�+�Q�/�����a��$�t�*�-��a����a�����1��I�����T�$�Z��!�,������a��)������a��)��V�$��Q�q�	������a��)������a��)����F�D��G�,��
�
������d��R�(�A(�
'��=��3s�H�H�H�Hc���tjd�}|jtj|�d�tj	d�}|jtj|�d�y)Nr0r1)rr�r�rr�rss  r�test_writestringz ElementTreeTest.test_writestring3sT���v�v�6�7��������T�*�,M�N��}�}�=�>��������T�*�,M�Nrc��tjd�}tj|�|jtj	|�d�tjd�}tj|�|jtj	|�d�tjd�}tj|�|jtj	|�d�tjd�}tj|�|jtj	|�d�tjd�}tj|�|jtj	|�d	�tjd
�}tj|�|jtj	|�d�y)Nz
<root></root>s<root />r0s"<html>
  <body>text</body>
</html>z!<html> <body>text</body>  </html>z"<html><body>text</body>tail</html>s%<html>
  <body>text</body>tail</html>z=<html><body><p>par</p>
<p>text</p>	<p><br/></p></body></html>s^<html>
  <body>
    <p>par</p>
    <p>text</p>
    <p>
      <br />
    </p>
  </body>
</html>�8<html><body><p>pre<br/>post</p><p>text</p></body></html>sJ<html>
  <body>
    <p>pre<br />post</p>
    <p>text</p>
  </body>
</html>�rr��indentr�rrss  r�test_indentzElementTreeTest.test_indent9sD���v�v�o�&��
�	�	�$��������T�*�K�8��v�v�6�7��
�	�	�$��������T�*�,S�T��v�v�9�:��
�	�	�$��������T�*�,S�T��v�v�:�;��
�	�	�$��������T�*�,U�V��v�v�W�X��
�	�	�$������K�K���
�	
��v�v�P�Q��
�	�	�$������K�K���
�	
rc�H�tjd�}tj|d��|jtj	|�d�tjd�}tj|d��|jtj	|�d�y)Nr��	)�spacesD<html>
	<body>
		<p>pre<br />post</p>
		<p>text</p>
	</body>
</html>rRs><html>
<body>
<p>pre<br />post</p>
<p>text</p>
</body>
</html>r�rss  r�test_indent_spacez!ElementTreeTest.test_indent_spacees����v�v�P�Q��
�	�	�$�d�	�#�����K�K���
�	
��v�v�P�Q��
�	�	�$�b�	�!�����K�K���
�	
rc�Z�tjd�}tj|�|j|j	�D�chc]}|j
��c}hd��|j|j	�D�chc]}|j��c}hd��|jt|j	�D�chc]}|j
��c}�t|j	�D�chc]}t|j
���c}��ycc}wcc}wcc}wcc}w)Nz@<html><body><p>par</p><p>text</p><p><br/></p><p /></body></html>>N�
�
  �
    >N�
      �parr�r�r�)	rr�r�r�r�r�r�r��id)rFr\�els   r�test_indent_space_cachingz)ElementTreeTest.test_indent_space_caching~s����v�v�X�Y��
�	�	�$�����#�y�y�{�+�{��R�W�W�{�+�*�	
�	
���#�y�y�{�+�{��R�W�W�{�+�?�	
�	
����4�9�9�;�/�;�R����;�/�0��t�y�y�{�3�{���B�G�G��{�3�4�	
��
,��
,��0��3s�D�D�D#�1D(c��tjd�}|jt�5tj	|d��ddd�|jtj
|�d�tj	|d��|jtj
|�d�tjd�}tj	|dd�	�|jtj
|�d
�y#1swY��xYw)Nr����)�levels9<html><body><p>pre<br />post</p><p>text</p></body></html>r�s^<html>
      <body>
        <p>pre<br />post</p>
        <p>text</p>
      </body>
    </html>r�� )r�r�sI<html>
  <body>
   <p>pre<br />post</p>
   <p>text</p>
  </body>
 </html>)rr�r�r�r�r�rrss  r�test_indent_levelz!ElementTreeTest.test_indent_level�s����v�v�P�Q��
�
�
�z�
*��I�I�d�"�I�%�+�����K�K���H�	
�
	�	�	�$�a�	� �����K�K���
�	
��v�v�P�Q��
�	�	�$�a�s�	�+�����K�K���
�	
�)+�
*�s�C?�?Dc���tjd�}|jtj|d��d�|jtj|dd��d�y)N�0<body xmlns="http://effbot.org/ns"><tag/></body>rTr�A<ns0:body xmlns:ns0="http://effbot.org/ns"><ns0:tag /></ns0:body>r\�rU�default_namespace�1<body xmlns="http://effbot.org/ns"><tag /></body>�rr�r�rrss  r�test_tostring_default_namespacez/ElementTreeTest.test_tostring_default_namespace�sX���v�v�H�I������K�K��y�K�1�O�	
�	
����K�K��y�DZ�K�[�?�	
rc�~�tjd�}|jtj|dd��d�y)Nr�rT�foobarr�zP<ns1:body xmlns="foobar" xmlns:ns1="http://effbot.org/ns"><ns1:tag /></ns1:body>r�rss  r�3test_tostring_default_namespace_different_namespacezCElementTreeTest.test_tostring_default_namespace_different_namespace�s4���v�v�H�I������K�K��y�H�K�M�^�	
rc��tjd�}d}|jt|�5tj	|dd��ddd�y#1swYyxYw)Nr�z>^cannot use non-qualified names with default_namespace option$rTr�r�)rr��assertRaisesRegexr�r)rFr\�EXPECTED_MSGs   r�5test_tostring_default_namespace_original_no_namespacezEElementTreeTest.test_tostring_default_namespace_original_no_namespace�sD���v�v�+�,��W��
�
#�
#�J��
=��K�K��y�H�K�M�>�
=�
=�s�A�Ac�|�tjd�}|jtj|d��d�y)Nr�rTrr�r�rss  r� test_tostring_no_xml_declarationz0ElementTreeTest.test_tostring_no_xml_declaration�s2���v�v�+�,������K�K��y�K�1�"�	
rc�~�tjd�}|jtj|dd��d�y)Nr��utf8T�rU�xml_declarations:<?xml version='1.0' encoding='utf8'?>
<body><tag /></body>r�rss  r�test_tostring_xml_declarationz-ElementTreeTest.test_tostring_xml_declaration�s4���v�v�+�,������K�K��v�t�K�D�J�	
rc�~�tjd�}|jtj|dd��d�y)Nr�rTTr��;<?xml version='1.0' encoding='utf-8'?>
<body><tag /></body>r�rss  r�.test_tostring_xml_declaration_unicode_encodingz>ElementTreeTest.test_tostring_xml_declaration_unicode_encoding�s4���v�v�+�,������K�K��y�$�K�G�J�	
rc	���tjd�}gd�}|D]N\}}}|jd|�d|���5|jtj	|||��|�ddd��Py#1swY�[xYw)N�<body><tag>ø</tag></body>))�<body><tag>&#248;</tag></body>NN)�<body><tag>ø</tag></body>�UTF-8N)r��US-ASCIIN)�E<?xml version='1.0' encoding='ISO-8859-1'?>
<body><tag>�</tag></body>�
ISO-8859-1N)r�rTN)r�NF)r�r�F)r�r�F)s<body><tag>�</tag></body>r�F)r�rTF)sH<?xml version='1.0' encoding='us-ascii'?>
<body><tag>&#248;</tag></body>NT)sA<?xml version='1.0' encoding='UTF-8'?>
<body><tag>ø</tag></body>r�T)sH<?xml version='1.0' encoding='US-ASCII'?>
<body><tag>&#248;</tag></body>r�T)r�r�T)uA<?xml version='1.0' encoding='utf-8'?>
<body><tag>ø</tag></body>rTTz	encoding=z xml_declaration=r�)rr��subTestr�r)rFr\�	TESTCASES�expected_retvalrUr�s      r�#test_tostring_xml_declaration_casesz3ElementTreeTest.test_tostring_xml_declaration_cases�s����v�v�2�3��
�	�<;D�6�O�X�����	�(��41�1@�0A�C�D�� � ��K�K��!)�(7� ��
$�
�D�D�;D�D�D�s�)A.�.A7	c	��tjd�}|jdjtj	|d���d�|jdjtj	|dd���d�y)	Nr�rRrTrr�r\r�r�)rr�r�r5r6rss  r�#test_tostringlist_default_namespacez3ElementTreeTest.test_tostringlist_default_namespacesj���v�v�H�I������G�G�B�O�O�D�9�O�=�>�O�	
�	
����G�G�B�O�O�D�9�Pf�O�g�h�?�	
rc���tjd�}|jdjtj	|d���d�|jdjtj	|d���d	�tj	|dd�
�}|jdj|�d�|j|dd
�|jgd�|dd�y)Nr�rRrTrr�rT)r�s><?xml version='1.0' encoding='us-ascii'?>
<body><tag /></body>r�r�rz%^<\?xml version='1.0' encoding='.+'?>)z<body�>z<tagz />z</body>r�)rr�r�r5r6r�)rFr\�
stringlists   r�!test_tostringlist_xml_declarationz1ElementTreeTest.test_tostringlist_xml_declarations����v�v�+�,������G�G�B�O�O�D�9�O�=�>�"�	
�	
����H�H�R�_�_�T�4�_�@�A�N�	
�
�_�_�T�I�t�_�T�
�����G�G�J��J�	
�	
����A��(P�Q����A�:�a�b�>�Rrc
����d�fd�	}|dd�|dd�|dd�|dd�|d	d
�|dd�d
���fd�}gd�}|D]@}�jtjtj||���d��Bgd�}|D]-}�j	t
tj||���/gd�}|D]7}�j	tjtj||���9�j	t
tj�d�jd���j	ttj�d�jd��y)Nc����d|�d|�d�}�jtj|j|��j|��jtj|�j|�y)Nz<?xml version='1.0' encoding='z'?><xml>z</xml>)r�rr�r:r�)rUr3�xmlrFs   �r�checkz,ElementTreeTest.test_encoding.<locals>.check&sU����d�$�C����R�V�V�C�J�J�x�$8�9�>�>��E����R�V�V�C�[�-�-�t�4rr2r��us-ascii�
iso-8859-1�½ziso-8859-15u€�cp437u√�	mac-romanu˚c��d|zS)Nz*<?xml version='1.0' encoding='%s'?><xml />rrs rr�z*ElementTreeTest.test_encoding.<locals>.xml2s
��?�(�J�Jrc�2���|�j|�Sr)r:)rUr�s �r�bxmlz+ElementTreeTest.test_encoding.<locals>.bxml4s����x�=�'�'��1�1r)Cr2rz	utf-8-sig�utf-16�utf-16be�utf-16lez	iso8859-1z	iso8859-2z	iso8859-3z	iso8859-4z	iso8859-5z	iso8859-6z	iso8859-7z	iso8859-8z	iso8859-9z
iso8859-10z
iso8859-13z
iso8859-14z
iso8859-15z
iso8859-16r��cp720�cp737�cp775�cp850�cp852�cp855�cp856�cp857�cp858�cp860�cp861�cp862�cp863�cp865�cp866�cp869�cp874�cp1006�cp1125�cp1250�cp1251�cp1252�cp1253�cp1254�cp1255�cp1256�cp1257�cp1258zmac-cyrillicz	mac-greekzmac-icelandz
mac-latin2r�zmac-turkishz
iso2022-jpziso2022-jp-1ziso2022-jp-2ziso2022-jp-2004ziso2022-jp-3ziso2022-jp-extzkoi8-rzkoi8-tzkoi8-u�kz1048�hz�ptcp154s<xml />)�big5�	big5hkscs�cp932�cp949�cp950zeuc-jpzeuc-jis-2004zeuc-jisx0213zeuc-kr�gb2312�gbk�gb18030z
iso2022-kr�johabz	shift-jiszshift-jis-2004zshift-jisx0213zutf-7)
�cp037�cp424�cp500�cp864�cp875�cp1026�cp1140�utf_32�	utf_32_be�	utf_32_le�	undefined�xxx)rR)	r�rrr�r�r�rer:�LookupError)rFr�r��supported_encodingsrU�&unsupported_ascii_compatible_encodings�(unsupported_ascii_incompatible_encodingsr�s`      @r�
test_encodingzElementTreeTest.test_encoding%s:���	5�
	�g�s��
�j�#��
�l�F�#�
�m�X�&�
�g�x� �
�k�8�$�	K�	2�
��",�H����R�[�[�����X��)?�@�*�M�,�2
�.�?�H����j�"�&�&�$�x�.�A�?�4
�0�A�H����b�m�m�R�V�V�T�(�^�D�A�	
���*�b�f�f�c�+�.>�.E�.E�g�.N�O����+�r�v�v�s�5�z�/@�/@��/I�Jrc�Z�tjd�}d|_|jt	|�d�|jt	|d��d�|jt	|d��d�|jt	|d��d�|jt	|d��d	�y)
Nz-<html><link/><script>1 &lt; 2</script></html>r�z/<html><link /><script>1 &lt; 2</script></html>
�r�r��htmlz*<html><link><script>1 < 2</script></html>
r�z1 < 2
)rr�r�r�ra�rFr�s  r�test_methodszElementTreeTest.test_methods`s���
�F�F�B�C���������1��B�	D�����1�T�2�B�	D�����1�U�3�B�	D�����1�V�4�=�	?�����1�V�4�i�@rc��tjd�}|jt|�d�|jt|d��d�y)Nz(<html><CamelCase>text</CamelCase></html>r8r7�rr�r�rar9s  r�test_issue18347zElementTreeTest.test_issue18347osB���F�F�=�>������1��:�	<�����1�V�4�:�	<rc���tjd�}|jt|d��d�|j	|d�|jtj�5}tjd�ddd�|jtj�d�|jtj�5}tjt�ddd�|jt|j�d�tj�}d	|jd
<|jt�|j�}|j	|d�|jtj�5}tjt�ddd�|jt|j�d�y#1swY��VxYw#1swY��xYw#1swY�HxYw)
Nz*<document title='&#x8230;'>test</document>r�rs*<document title="&#33328;">test</document>u%<document title="舰">test</document>z<document>&entity;</document>z#undefined entity: line 1, column 10z,undefined entity &entity;: line 5, column 10r��entityz<document>text</document>z,undefined entity &entity;: line 4, column 10)rr�r�rar�r�rer�r��
ENTITY_XMLr&r?r(r)�EXTERNAL_ENTITY_XML)rFr�r�r-rAs     r�test_entityzElementTreeTest.test_entityvsi��

�F�F�?�@������1�z�:�=�	?����Q� J�K��
�
�r�}�}�
-���F�F�2�3�.�����R�\�\�*�5�	7��
�
�r�}�}�
-���F�F�:��.�����R�\�\�*�>�	@�
�����"(��
�
�h�����J���|�|�~�����T�#>�?��
�
�r�}�}�
-���F�F�&�'�.�����R�\�\�*�>�	@�-.�
-��
.�
-��.�
-�s$�$G�G�G'�G�G$�'G0c��tjd�}|j|d�tjd�}|j|d�tjd�}|j|d�tjd�}|j|d�tjt�}|j|d	�y)
Nz<tag xml:lang='en' />z<tag xml:lang="en" />zC<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' />zC<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" />z7<html:html xmlns:html='http://www.w3.org/1999/xhtml' />z7<html:html xmlns:html="http://www.w3.org/1999/xhtml" />zG<soap:Envelope xmlns:soap='http://schemas.xmlsoap.org/soap/envelope' />zE<ns0:Envelope xmlns:ns0="http://schemas.xmlsoap.org/soap/envelope" />z�<ns0:body xmlns:ns0="http://effbot.org/ns">
  <ns0:tag>text</ns0:tag>
  <ns0:tag />
  <ns0:section>
    <ns0:tag>subtext</ns0:tag>
  </ns0:section>
</ns0:body>)rr�r��
SAMPLE_XML_NSrss  r�test_namespacezElementTreeTest.test_namespace�s���
�v�v�-�.�����T�#:�;��v�v�[�\�����T�Q�	S��v�v�O�P�����T�E�	G��v�v�_�`�����T�S�	U��v�v�m�$�����T�
�	rc���tjd�}|j|d�tjtjd��}|j|d�tjtjdd��}|j|d�tjtjdd��}tj	|tjdd��}tj	|tjdd��}|j|d�|j�d|jd	<|j|d
�|j�d|jtjd	�<|j|d
�|j�d|jd	<|j|d�|j�tjd�|jd	<|j|d
�|j�tjd�}tjd�|jd<|j|�|j|�|j|d�|jttjdd��d�|jttjd��d�tjdd�}tjdd�}|j||�tjdd�}|j||�|j|d�|j|d�y)Nz{uri}tagz<ns0:tag xmlns:ns0="uri" />r�rd�tag1r�z;<ns0:tag xmlns:ns0="uri"><ns0:tag1 /><ns0:tag2 /></ns0:tag>r�z{uri}keyz+<ns0:tag xmlns:ns0="uri" ns0:key="value" />z
{uri}valuez0<ns0:tag xmlns:ns0="uri" ns0:key="{uri}value" />z/<ns0:tag xmlns:ns0="uri" ns0:key="ns0:value" />z{uri2}valuez	{uri1}keyz{<ns0:tag xmlns:ns0="uri" xmlns:ns1="uri1" xmlns:ns2="uri2"><tag ns1:key="ns2:value" /><tag ns1:key="ns2:value" /></ns0:tag>�nsz{ns}tagz	other-tagzns:tag)rr�r��QNamerqr�r�r�r�r�r�)rFr\r�q1�q2s     r�
test_qnamezElementTreeTest.test_qname�s���
�z�z�*�%�����T�#@�A��z�z�"�(�(�:�.�/�����T�#@�A��z�z�"�(�(�5�%�0�1�����T�#@�A��z�z�"�(�(�5�%�0�1���-�-��b�h�h�u�f�&=�>���-�-��b�h�h�u�f�&=�>�����T�I�	K�
	
�
�
��")����J�����T�9�	;�	
�
�
��,3����B�H�H�Z�(�)����T�9�	;�	
�
�
��".����J�����T�>�	@�	
�
�
��"$�(�(�<�"8����J�����T�=�	?�	
�
�
���*�*�U�#��&(�h�h�}�&=����{�#����G�����G�����T�
�	�	
����R�X�X�d�E�2�3�Y�?�����R�X�X�i�0�1�9�=�
�X�X�d�E�
"��
�X�X�d�E�
"������R� �
�X�X�d�K�
(�����B��#����B��)�����Y�'rc�.�tjd�}y)Nz�<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html>text</html>)rr�rss  r�test_doctype_publicz#ElementTreeTest.test_doctype_public�s���v�v�$�%�rc����ddlm�d>��fd�	}|ddg�|dddg�|dd	d
g�|dd	dg�|dgd
��|dgd��|dgd��|dgd��|dgd��|dddg�|dgd��|ddg�|dgd��|ddg�|dgd ��|d!gd"��|d#gd$��|d%d	d&g�|d'd'g�|d(gd)��|d*gd+��|d,d,g�|d-d-g�|d.d.g�|d/d/g�|d0gd1��|d2gd3�d4d5i�|d6d7gd8d5i�|d9d	d7gd4d5i�|d:d	d6gd8d5i�|d;d	d<gd8d5i�|d%d	d&gd5d5d=��y)?NrrCc����j�j||�D��cgc]\}}|xs|��
c}}|�ycc}}wr)r��xpath_tokenizer)r�r��
namespaces�oprdrDrFs     ��rr�z3ElementTreeTest.test_xpath_tokenizer.<locals>.checksN������-8�-H�-H��J�-W�Y�-W�'�"�c�!�i�C�i�-W�Y�%�
'��Ys�<
r�ztext()r��()z@name�@ryz@*zpara[1])�para�[�1�]zpara[last()])rVrW�lastrTrYz*/para)r��/rVz/doc/chapter[5]/section[2])r[�docr[�chapterrW�5rYr[�sectionrW�2rYz
chapter//para)r]�//rVz//parararVz//olist/item)ra�olistr[�item�.z.//para)rdrarV�..z../@lang)rer[rU�langzchapter[title])r]rW�titlerYz#employee[@secretary and @assistant])
�employeerWrU�	secretaryrR�andrRrU�	assistantrYz	@{ns}attrz{ns}attr�{http://spam}eggz
./spam.egg)rdr[zspam.eggz.//{http://spam}egg)rdrarlz{ns}*�{}*�{*}tag�{*}*z	.//{*}tag)rdrarnz
./xsd:type)rdr[�&{http://www.w3.org/2001/XMLSchema}type�xsdz http://www.w3.org/2001/XMLSchema�typerprRz	@xsd:typez@typez@{*}typez{*}type)rRrHr)rErD)rFr�rDs` @r�test_xpath_tokenizerz$ElementTreeTest.test_xpath_tokenizers����)�	'�	�c�C�5��
�h����'�
�g��V�}�%�
�d�S�#�J��
�i�0�1�
�n�>�?�
�h�*�+�
�*�.�	/�	�o�8�9�
�h��v��'�
�n�:�;�
�c�C�5��
�i�,�-�
�d�T�F��
�j�2�3�
�� >�?�
�3�6K�	L�	�k�C��,�-�
� �#5�"6�7�
�l�2�3�
�#�%D�E�	�g��y�!�
�e�e�W��
�h��
�#�
�f�v�h��
�k�0�1�	�l�P��8�9�	;�
�f�?�@��5�6�	8�
�k�C�!I�J��8�9�	;�
�g��V�}��5�6�	8�
�j�3�	�*��5�6�	8�
�k�C��,�5�7�9�	:rc���|jtjtjdd��d�|jtjtj	dd��d�|jtjtj	dd��d�|jtjtj	dd�d�d�y)	Nr/�instructions<?test instruction?>z
<testing&>s<?test <testing&>?>u<testing&>ãzlatin-1s=<?xml version='1.0' encoding='latin-1'?>
<?test <testing&>�?>)r�rrr�r�r�s r�test_processinginstructionz*ElementTreeTest.test_processinginstruction?s���	
������R�%=�%=�f�m�%T�U�'�	)�������R�U�U�6�=�%A�B�'�	)�
	
������R�U�U�6�<�%@�A�&�	(�������R�U�U�6�3C�%D�i�P�+�	,rc�&�dD]�}||j�fD]u}d|z}ttjd|z�d��}|j	||�ttjd|�d|�d��d��}|j	||��w��y)	N)�AREA�BASE�BASEFONT�BR�COL�EMBED�FRAME�HR�IMG�INPUT�ISINDEX�LINK�META�PARAM�SOURCE�TRACK�WBRz<%s>z<%s />r8r7�<z></r�)�lowerrarr�r�)rFr�r\r��
serializeds     r�#test_html_empty_elems_serializationz3ElementTreeTest.test_html_empty_elems_serializationOs���2�G�!�'�-�-�/�2��!�D�=��&�r�v�v�h��o�'>�v�N�
�� � ��X�6�&�r�v�v�T�$�.G�'H�.4�6�
�� � ��X�6�
3�2rc���tjddd��}tj�5}tj	|�ddd�|jj
�d�y#1swY�*xYw)N�
cirriculum�public�example��status�companyz1<cirriculum status="public" company="example" />
)rr�r�captured_stdout�dumpr�rZ)rFr��stdouts   r�test_dump_attribute_orderz)ElementTreeTest.test_dump_attribute_order]sX���J�J�|�H�i�J�H��
�
$�
$�
&�&��G�G�A�J�'�������*�M�	O�'�
&�s�A,�,A5c��tjddd��}|jt|�d�|jt|d��d�y)	Nr�r�r�r�z0<cirriculum status="public" company="example" />r8r7z;<cirriculum status="public" company="example"></cirriculum>)rr�r�ra�rFrAs  r�test_tree_write_attribute_orderz/ElementTreeTest.test_tree_write_attribute_orderesI���z�z�,�x��z�K������4��K�	M�����4��7�M�	Orc�x�tjt�}|j|djddi�y)Nrz*{http://www.w3.org/XML/1998/namespace}lang�eng)rr��ATTLIST_XMLr�r�r�s  r�test_attlist_defaultz$ElementTreeTest.test_attlist_defaultms1���}�}�[�)������a����F��N�	PrN)0rPrQrRr�r�r�r�r�r�r�rrrr.r;rmrtr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r5r:r=rBrErLrNrsrvr�r�r�r�rrrr�r��s��4�A:�F?�6*?�X$�	!�6� 
<�4p�lH�,+�Z2�,x%�tP�";�z�,>�#)�JO�*
�X
�2
� 
�@	
�
�N�
�
�
�*�X	
�S�&9K�v
A�<�#@�J�B?(�B%�8:�t,� 7�O�O�Prr�c���eZdZdd�Zdd�Zdd�Zdd�Zdd�Zd�Zd�Z	d	�Z
d
�Zd�Zd�Z
d
�Zd�Zd�Zd�Zd�Zd�Zd�Zej,ej0dkdej0�d��d��Zd�Zy)�XMLPullParserTestNc��|�|j|�n2tdt|�|�D]}|j||||z��|r|j�yy�Nr)r(r�r��flush)rFr-r;�
chunk_sizer�r�s      r�_feedzXMLPullParserTest._feedvsS�����K�K����1�c�$�i��4�����D��1�Z�<�0�1�5���L�L�N�rc	��|jt|j�|�D��cgc]\}}||j|jff��!c}}|�ycc}}wr)r�r�read_eventsrdr�)rFr-r��
max_events�eventr\s      r�
assert_eventszXMLPullParserTest.assert_eventss\����� &�v�'9�'9�';�Z� H�
J� H�����d�h�h��	�	�*�
+� H�
J��	��
Js�$A
c�j�|jtt|j�|��|�yr)r�r�rr�)rFr-r�r�s    r�assert_event_tuplesz%XMLPullParserTest.assert_event_tuples�s+��������*�*�,�j�9�:��	rc��t|j�|�}|j|D��cgc]\}}||jf��c}}|�ycc}}wr)rr�r�rd)rFr-r�r�rIrjr\s       r�assert_event_tagsz#XMLPullParserTest.assert_event_tags�sI����*�*�,�j�9������H�����6�4�8�8�,��H�!�	#��Hs�A
c�:�tj�}|j|g�|j|d||�|j|g�|j|d||�|j|g�|j|d||�|j|dg�|j|d||�|j|d||�|j|ddg�|j|d||�|j|d	g�|j	|j��y)
N�<!-- comment -->
z+<root>
  <element key='value'>text</element�>
r=�<element>text</element>tail
�<empty-element/>
r?�</root>
r@�r�
XMLPullParserr�r�r�r))rFr�r�r-s    r�test_simple_xmlz!XMLPullParserTest.test_simple_xml�s
���!�!�#�����v�r�*��
�
�6�/��U�C����v�r�*��
�
�6�A��u�	&�	
���v�r�*��
�
�6�5�*�e�4����v�(:�';�<��
�
�6�:�J��N��
�
�6�/��U�C����v��$�(�	�	
�
�
�6�;�
�E�:����v��'8�9����&�,�,�.�)rc�*�|jdd��y)Nr�T�r�r��r�r�s r�test_simple_xml_chunk_1z)XMLPullParserTest.test_simple_xml_chunk_1����������6rc�*�|jdd��y)N�Tr�r�r�s r�test_simple_xml_chunk_5z)XMLPullParserTest.test_simple_xml_chunk_5�r�rc�(�|jd��y)N�)r�r�r�s r�test_simple_xml_chunk_22z*XMLPullParserTest.test_simple_xml_chunk_22�s�������+rc��tj�}|j�}|j|d�t	|�\}}|j||jfd�|j|d�t	|�\}}|j||jfd�|jt�5t	|�ddd�y#1swYyxYw)Nz-<root>
  <element key='value'>text</element>
r=r�r@)	rr�r�r�rar�rdr��
StopIteration)rFr-r�rjr\s     r�test_feed_while_iteratingz+XMLPullParserTest.test_feed_while_iterating�s����!�!�#��
�
�
�
!���
�
�6�L�M��B�x�������&�$�(�(�+�-?�@��
�
�6�;�'��B�x�������&�$�(�(�+�_�=�
�
�
�}�
-���H�.�
-�
-�s�6C�Cc�j�tj�}|j|g�|j|d�|j|g�|j|d�|j|g�|j|d�|j|g�|j|d�|j|dg�|j|d�|j|d�|j|ddg�|j|d	�|j|d
g�|j	|j��y)Nr��<root xmlns='namespace'>
�"<element key='value'>text</elementr�rBr�r�rDr�rFr��rFr-s  r�test_simple_xml_with_nsz)XMLPullParserTest.test_simple_xml_with_ns�s���!�!�#�����v�r�*��
�
�6�/�0����v�r�*��
�
�6�7�8����v�r�*��
�
�6�?�@����v�r�*��
�
�6�5�!����v�(E�'F�G��
�
�6�:�;��
�
�6�/�0����v�)�/�(�	�	
�
�
�6�;�'����v�(B�'C�D����&�,�,�.�)rc��tjd��}|j|d�|j|d�|jt	|j��dg�|j|d�|j|d�|j|d�|j|d	�|j|d
�|jt	|j��dg�|j
|j��y)NrXrHr�r�rQr�r�r�r�r�rW)rr�r�r�r�r�r�r)r�s  r�test_ns_eventsz XMLPullParserTest.test_ns_events�s����!�!�)?�!�@���
�
�6�/�0��
�
�6�7�8������#�#�%�&�
,�-�	/�	
�
�
�6�?�@��
�
�6�5�!��
�
�6�:�;��
�
�6�/�0��
�
�6�;�'�����f�0�0�2�3�6F�5G�H����&�,�,�.�)rc�`�tjd��}|j|d�|j|ddgd��|j	|dgd	��|j|d
�|j	|ddg�|j|d
�|j�|j	|dg�y)N)rOrKr>rH� <tag xmlns='abc' xmlns:p='xyz'>
�rO)rR�abc�rO)r��xyzr��r��rK�{abc}tagr��
<child />
�rK�
{abc}child�r>r��</tag>
�r>r��rr�r�r�r�r)r�s  r�test_ns_events_startz&XMLPullParserTest.test_ns_events_start�s����!�!�)E�!�F���
�
�6�>�?�� � ��%�&�*
��	!�	�	
���v�!�(
��	�	�	
�
�
�6�=�)����v�#�!�(
�	�
	
�
�
�6�:�&��������v��(
�	rc��tjd��}|j|d�|j|ddgd��|j	|dgd	��|j|d
�|j	|ddg�|j|d
�|j�|j	|dgd	��|j|ddg�y)N)rOrKr>rPrHr�r�r�r�r�r�r�r�r�r�r�r�rWr�r�s  r�test_ns_events_start_endz*XMLPullParserTest.test_ns_events_start_end�s����!�!�)O�!�P���
�
�6�>�?�� � ��%�&�*
��	!�	�	
���v�!�(
��	�	�	
�
�
�6�=�)����v�#�!�(
�	�
	
�
�
�6�:�&��������v��(
��	�	�	
� � ����*
�	rc���tjd��}|j|d�|j|g�tjd��}|j|d�|j	|g�tjd��}|j|d�|j|dg�|j|d�|j|d	g�|j|d
�|j|dg�|j|d�|j|gd
��|j|d�|j|j
��|j|dg�tjd��}|j|d�|j|g�|j|d�|j|dg�|j|d�|j|d	g�|j|d
�|j|g�|j|d�|j|ddg�|j|d�|j|j
��y)NrrHz<root/>
rJ�<!-- text here -->
z<root>
rMr�rNr�r=z8<element xmlns='foo'>text<empty-element/></element>tail
)�rK�{foo}element�rK�{foo}empty-element)r>r�)r>r�z</root>r@)rKr�r�r�)rr�r�r�r�r�r)r�s  r�test_eventszXMLPullParserTest.test_eventss%���!�!��!�,���
�
�6�;�'����v�r�*��!�!�)9�!�:���
�
�6�1�2����6�2�&��!�!�)9�!�:���
�
�6�:�&����v�(9�':�;��
�
�6�?�@����v�(<�'=�>��
�
�6�5�!����v�(:�';�<��
�
�6�N�	P����v�(�	�	
�
�
�6�9�%����&�,�,�.�)����v��'8�9��!�!��!�4���
�
�6�/�0����v�r�*��
�
�6�:�&����v�(9�':�;��
�
�6�?�@����v�(<�'=�>��
�
�6�5�!����v�r�*��
�
�6�N�	P����v�%�+�(�	�	
�
�
�6�9�%����&�,�,�.�)rc��tjd��}|j|d�|j|dtjdffg�|j|d�|j|dtjdffg�|j|d�|j|d	g�|j|d
�|j|dtjdffg�|j|d�|j|d
g�|j|d�|j|dtjdffg�tjd��}|j|d�|j|dtjdffg�y)N)rKrpr>rHr�rpz text here z<!-- more text here -->
z more text here z<root-tag>text)rK�root-tagz<!-- inner comment-->
z inner commentz</root-tag>
)r>r�z<!-- outer comment -->
z outer comment )rp)rr�r�r�rrr�r�s  r�test_events_commentz%XMLPullParserTest.test_events_comment=sa���!�!�)D�!�E���
�
�6�1�2����6�Y����]�0K�$L�#M�N��
�
�6�6�7����6�Y����=O�0P�$Q�#R�S��
�
�6�+�,����v�(=�'>�?��
�
�6�4�5����6�Y����=M�0N�$O�#P�Q��
�
�6�?�+����v�(;�'<�=��
�
�6�5�6����6�Y����=N�0O�$P�#Q�R��!�!��!�6���
�
�6�1�2����6�Y����]�0K�$L�#M�Nrc�8�tjd��}|j|d�|j|dtjdffg�tjd��}|j|d�|j|dtjdffg�y)	N)rKr�r>rHz
<?pitarget?>
r��pitarget)r�z<?pitarget some text ?>
zpitarget some text )rr�r�r�r�r�s  r�test_events_piz XMLPullParserTest.test_events_piPs����!�!�)?�!�@���
�
�6�+�,����6�T�B�E�E�:�+>�$?�#@�A��!�!��!�1���
�
�6�6�7����6�T�B�E�E�3H�+I�$J�#K�Lrc��ddh}tj|��}|j|d�|j|ddg�Gd�d�}tj|���}|j|d�|j|ddg�y)	Nr>rKrHz<foo>bar</foo>)rKr)r>rc��eZdZd�Zd�Zd�Zy)�9XMLPullParserTest.test_events_sequence.<locals>.DummyIterc�(�tgd��|_y)N)rKr>rO)r�rIr�s r�__init__zBXMLPullParserTest.test_events_sequence.<locals>.DummyIter.__init__`s��"�#?�@��rc��|Srrr�s r�__iter__zBXMLPullParserTest.test_events_sequence.<locals>.DummyIter.__iter__bs���rc�,�t|j�Sr)rarIr�s rr�zBXMLPullParserTest.test_events_sequence.<locals>.DummyIter.__next__ds���D�K�K�(�(rN)rPrQrRr�r�r�rrr�	DummyIterr�_s��
A�
�
)rr�)rr�r�r�)rF�eventsetr-r�s    r�test_events_sequencez&XMLPullParserTest.test_events_sequenceXs����7�#���!�!��!�2���
�
�6�+�,����v�(8�.�'I�J�	)�	)��!�!���!�5���
�
�6�+�,����v�(8�.�'I�Jrc��|jt�5tjd��ddd�y#1swYyxYw)NrYrH)r�r�rr�r�s r�test_unknown_eventz$XMLPullParserTest.test_unknown_eventks.��
�
�
�z�
*����$=��>�+�
*�
*�s�6�?�r��rzExpat z" does not support reparse deferralc�.�tjd��}dD]}|j|��|j|g�ttur3|j|jjj��|j�|j|dg�ttur3|j|jjj��|jd�|j�|j|dg�y)NrJrH�z<docr��rKr\�</doc>�r>r\)
rr�r(r�rr��_parser�GetReparseDeferralEnabledr�r)�rFr-�chunks   r�#test_flush_reparse_deferral_enabledz5XMLPullParserTest.test_flush_reparse_deferral_enabledos����!�!�)9�!�:��"�E��K�K���#�	
���v�r�*�
��:��O�O�F�N�N�2�2�L�L�N�O��������v�(8�'9�:�
��:��O�O�F�N�N�2�2�L�L�N�O����H���������v��'7�8rc���tjd��}dD]}|j|��tjdk\rTtt
ur|j
d�|jjjd�|j|g�tt
ur3|j|jjj��|j�|j|dg�tt
ur3|j|jjj��|jd�|j�|j|d	g�y)
NrJrHr�r�zDXMLParser.(Get|Set)ReparseDeferralEnabled methods not available in CFr�r�r)rr�r(�pyexpat�version_infor�skipTestr�SetReparseDeferralEnabledr�rbrr�r)rs   r�$test_flush_reparse_deferral_disabledz6XMLPullParserTest.test_flush_reparse_deferral_disabled�s���!�!�)9�!�:��"�E��K�K���#����9�,���:��
�
�!;�<��N�N�"�"�<�<�U�C��"�"�6�2�.�
��:����V�^�^�3�3�M�M�O�P��������v�(8�'9�:�
��:����V�^�^�3�3�M�M�O�P����H���������v��'7�8r)NFr)rPrQrRr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r��unittest�skipIfrrrrrrrr�r�ts������
#�
*�*7�7�,�
�*�*
*��.�6,*�\O�&M�K�&?��X�_�_�W�)�)�I�5��g�2�2�3�40�0�1�9�1�9�*9rr�z�<?xml version='1.0'?>
<document xmlns:xi="http://www.w3.org/2001/XInclude">
  <p>120 Mz is adequate for an average home user.</p>
  <xi:include href="disclaimer.xml"/>
</document>
�C1.xmlz�<?xml version='1.0'?>
<disclaimer>
  <p>The opinions represented herein represent those of the individual
  and should not be interpreted as official policy endorsed by this
  organization.</p>
</disclaimer>
zdisclaimer.xmlz�<?xml version='1.0'?>
<document xmlns:xi="http://www.w3.org/2001/XInclude">
  <p>This document has been accessed
  <xi:include href="count.txt" parse="text"/> times.</p>
</document>
�C2.xml�324387z	count.txtz�<?xml version='1.0'?>
<document xmlns:xi="http://www.w3.org/2001/XInclude">
  <p>This document has been <em>accessed</em>
  <xi:include href="count.txt" parse="text"/> times.</p>
</document>
�C2b.xmlz�<?xml version='1.0'?>
<document xmlns:xi="http://www.w3.org/2001/XInclude">
  <p>The following is the source of the "data.xml" resource:</p>
  <example><xi:include href="data.xml" parse="text"/></example>
</document>
�C3.xmlzQ<?xml version='1.0'?>
<data>
  <item><![CDATA[Brooks & Shields]]></item>
</data>
zdata.xmlaW<?xml version='1.0'?>
<div xmlns:xi="http://www.w3.org/2001/XInclude">
  <xi:include href="example.txt" parse="text">
    <xi:fallback>
      <xi:include href="fallback-example.txt" parse="text">
        <xi:fallback><a href="mailto:bob@example.org">Report error</a></xi:fallback>
      </xi:include>
    </xi:fallback>
  </xi:include>
</div>
�C5.xmlz�<?xml version='1.0'?>
<document xmlns:xi="http://www.w3.org/2001/XInclude">
  <p>Example.</p>
  <xi:include href="{}"/>
</document>
�default.xmla
<?xml version='1.0'?>
<document xmlns:xi="http://www.w3.org/2001/XInclude">
  <p>The following is the source code of Recursive1.xml:</p>
  <xi:include href="C1.xml"/>
  <xi:include href="C1.xml"/>
  <xi:include href="C1.xml"/>
  <xi:include href="C1.xml"/>
</document>
�include_c1_repeated.xmlz�<?xml version='1.0'?>
<document xmlns:xi="http://www.w3.org/2001/XInclude">
  <p>120 Mz is adequate for an average home user.</p>
  <xi:include href="disclaimer.xml" parse="BAD_TYPE"/>
</document>
�B1.xmlzn<?xml version='1.0'?>
<div xmlns:xi="http://www.w3.org/2001/XInclude">
    <xi:fallback></xi:fallback>
</div>
�B2.xmlz�<?xml version='1.0'?>
<document xmlns:xi="http://www.w3.org/2001/XInclude">
  <p>The following is the source code of Recursive2.xml:</p>
  <xi:include href="Recursive2.xml"/>
</document>
�Recursive1.xmlz�<?xml version='1.0'?>
<document xmlns:xi="http://www.w3.org/2001/XInclude">
  <p>The following is the source code of Recursive3.xml:</p>
  <xi:include href="Recursive3.xml"/>
</document>
zRecursive2.xmlz�<?xml version='1.0'?>
<document xmlns:xi="http://www.w3.org/2001/XInclude">
  <p>The following is the source code of Recursive1.xml:</p>
  <xi:include href="Recursive1.xml"/>
</document>
zRecursive3.xmlc�:�eZdZd	d�Zd
d�Zd�Zd�Zd�Zd�Zd�Z	y)�XIncludeTestNc�~�	t|}|dk(rtj	|�}|S#t$rtd��wxYw)N�resource not foundr�)�XINCLUDE�KeyError�OSErrorrr�)rF�hrefr"rUr;s     r�xinclude_loaderzXIncludeTest.xinclude_loader(sH��	0��D�>�D��E�>��6�6�$�<�D����	�	0��.�/�/�	0�s�	'�<c��yrr)rFr r-rUs    r�none_loaderzXIncludeTest.none_loader1s��rc��|dk(r9t|d�5}tj|�j�cddd�Sy#1swYyxYw)Nr�r[)r$rr"r�)rFr r"r,s    r�
_my_loaderzXIncludeTest._my_loader4sA���E�>��d�D�!�Q��x�x��{�*�*�,�"�!��"�!�s�#A�A	c��ddlm}|jd�}|j||j�|jt
|�d�y)NrrArz�<document>
  <p>Example.</p>
  <root>
   <element key="value">text</element>
   <element>text</element>tail
   <empty-element />
</root>
</document>)rErBr!�includer%r�ra)rFrBr\s   r�test_xinclude_defaultz"XIncludeTest.test_xinclude_default=sB��,��"�"�=�1�����s�D�O�O�4�����3��
�	rc�~�ddlm}|jd�}|j||j�|j	t|�d�|jd�}|j||j�|j	t|�d�|jd�}|j||j�|j	t|�d�|jd	�}|j||j�|j	t|�d
�|jd�}|j
t�5}|j||j�ddd�|j	tj�d�|j	t|�d
�y#1swY�JxYw)NrrAra<document>
  <p>120 Mz is adequate for an average home user.</p>
  <disclaimer>
  <p>The opinions represented herein represent those of the individual
  and should not be interpreted as official policy endorsed by this
  organization.</p>
</disclaimer>
</document>rzO<document>
  <p>This document has been accessed
  324387 times.</p>
</document>rzX<document>
  <p>This document has been <em>accessed</em>
  324387 times.</p>
</document>rz�<document>
  <p>The following is the source of the "data.xml" resource:</p>
  <example>&lt;?xml version='1.0'?&gt;
&lt;data&gt;
  &lt;item&gt;&lt;![CDATA[Brooks &amp; Shields]]&gt;&lt;/item&gt;
&lt;/data&gt;
</example>
</document>rraI<div xmlns:ns0="http://www.w3.org/2001/XInclude">
  <ns0:include href="example.txt" parse="text">
    <ns0:fallback>
      <ns0:include href="fallback-example.txt" parse="text">
        <ns0:fallback><a href="mailto:bob@example.org">Report error</a></ns0:fallback>
      </ns0:include>
    </ns0:fallback>
  </ns0:include>
</div>)
rErBr!r'r�rar�rr�r��rFrBr]r�s    r�
test_xincludezXIncludeTest.test_xincludeKs���,��'�'��1�����x��)=�)=�>�����8�,�
�	��'�'��1�����x��)=�)=�>�����8�,�
�	��'�'�	�2�����x��)=�)=�>�����8�,�
�	��'�'��1�����x��)=�)=�>�����8�,�
�	��'�'��1��
�
�
�w�
'�2��"�"�8�T�-A�-A�B�(�����R�\�\�*�,@�A�����8�,�
�		�(�
'�s�
F3�3F<c��ddlm}|jd�}|j||j�|j	dt|j
d���y)NrrArr�z.//p)rErBr!r'r�r�r�)rFrBr]s   r�test_xinclude_repeatedz#XIncludeTest.test_xinclude_repeated�sL��,��'�'�(A�B�����x��)=�)=�>������H�$4�$4�V�$<� =�>rc�
�ddlm}tjtd�}|j|j�5}|j||j��ddd�|jtj�d�tjtd�}|j|j�5}|j||j��ddd�|jt|j�d�tjtd�}|j|j�5}|j||j��ddd�|jt|j�d	�tjtd
�}|j|j�5}|j||j��ddd�|jt|j�d�|jd�}|j|j�5}|j||j�ddd�|jt|j�d
�|jd�}|j|j�5}|j||jd��ddd�|jt|j�d
�|jd�}|j|j�5}|j||jd��ddd�|jt|j�d�|jd�}|j|j�5}|j||jd��ddd�|jt|j�d�|jd�}|j|j�5}|j||jd��ddd�|jt|j�d�|jd�}|j|j�5}|j||jd��ddd�|jt|j�d
�y#1swY���xYw#1swY��xYw#1swY���xYw#1swY��%xYw#1swY���xYw#1swY��QxYw#1swY���xYw#1swY��{xYw#1swY��xYw#1swY��xYw)NrrAr)r{z%cannot load 'disclaimer.xml' as 'xml'rz!cannot load 'count.txt' as 'text'rz1unknown parse type in xi:include tag ('BAD_TYPE')rzYxi:fallback tag must be child of xi:include ('{http://www.w3.org/2001/XInclude}fallback')rz#recursive include of Recursive2.xml)�	max_depthzAmaximum xinclude depth reached when including file Recursive2.xmlr�zAmaximum xinclude depth reached when including file Recursive3.xmlr�zAmaximum xinclude depth reached when including file Recursive1.xmlr�)rErBrr�rr��FatalIncludeErrorr'r#r�r�r��XINCLUDE_BADr!�LimitedRecursiveIncludeErrorr*s    r�test_xinclude_failuresz#XIncludeTest.test_xinclude_failures�si��,��6�6�(�8�,�-��
�
�
�~�?�?�
@�B��"�"�8�D�4D�4D�"�E�A�����R�\�\�*�7�	9��6�6�(�8�,�-��
�
�
�~�?�?�
@�B��"�"�8�D�4D�4D�"�E�A�����R�\�\�*�3�	5��6�6�,�x�0�1��
�
�
�~�?�?�
@�B��"�"�8�D�4D�4D�"�E�A�����R�\�\�*�C�	E��6�6�,�x�0�1��
�
�
�~�?�?�
@�B��"�"�8�D�4D�4D�"�E�A�����R�\�\�*�@�	A�
�'�'�(8�9��
�
�
�~�?�?�
@�B��"�"�8�T�-A�-A�B�A�����R�\�\�*�5�	7��'�'�(8�9��
�
�
�~�?�?�
@�B��"�"�8�T�-A�-A�T�"�R�A�����R�\�\�*�5�	7��'�'�(8�9��
�
�
�~�J�J�
K�r��"�"�8�T�-A�-A�Q�"�O�L�����R�\�\�*�S�	U��'�'�(8�9��
�
�
�~�J�J�
K�r��"�"�8�T�-A�-A�Q�"�O�L�����R�\�\�*�S�	U��'�'�(8�9��
�
�
�~�J�J�
K�r��"�"�8�T�-A�-A�Q�"�O�L�����R�\�\�*�S�	U��'�'�(8�9��
�
�
�~�?�?�
@�B��"�"�8�T�-A�-A�Q�"�O�A�����R�\�\�*�5�	7�}A�
@��A�
@��A�
@��A�
@��A�
@��A�
@��L�
K��L�
K��L�
K��A�
@�sw�S�S+�S8�T�;T�1T�)T,�!T9�U�U�S(�+S5�8T�T�T�T)�,T6�9U�U�U)r�Nr)
rPrQrRr!r#r%r(r+r-r3rrrrr&s'������>�@?�D7rrc��eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zejej�d
�d��Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z!d�Z"d�Z#y) �BugsTestc����fd�}tjd�}||�tjd�}d|_||�tjd�}d|_||�tjd�}|j	dd�||�tjd�}|j	dd�||�y)Nc����jt�5}t|�ddd��jt	j
�d�y#1swY�/xYw)Nzcannot serialize 123 (type int))r��	TypeErrorrar�r�r�)r\r�rFs  �rr�z-BugsTest.test_bug_xmltoolkit21.<locals>.check�sD����"�"�9�-���$��.����S����.�5�
7�.�-�s�A�A�{r\�123)rr�r�r�r�)rFr�r\s`  r�test_bug_xmltoolkit21zBugsTest.test_bug_xmltoolkit21�s����	7��z�z�#���
�d���z�z�&�!����	�
�d���z�z�&�!����	�
�d���z�z�&�!������e��
�d���z�z�&�!��������
�d�rc���tjt�}tj|�}|j	|jd�d�|j	|jd�d�y)Nrdr�r�ro)rr�r�r@r�r�)rFr\r`s   r�test_bug_xmltoolkit25zBugsTest.test_bug_xmltoolkit25�sR���v�v�j�!���~�~�d�#��������u�-�v�6�������}�5�y�Arc���tjd�}|jt|j	d��g�|jt|j	d��dg�y)N�"<doc><table><tbody/></table></doc>z.//theadz.//tbody�tbody)rr�r�rfr��rFr`s  r�test_bug_xmltoolkit28zBugsTest.test_bug_xmltoolkit28sQ���v�v�:�;���������Z�(@�A�2�F��������Z�(@�A�G�9�Mrc���tjd�}tj�5}tj	|�|j|j
�d�ddd�y#1swYyxYw)Nr?z$<doc><table><tbody /></table></doc>
)rr�rr�r�r�rZ)rFr`r�s   r�test_bug_xmltoolkitX1zBugsTest.test_bug_xmltoolkitX1	sP���v�v�:�;��
�
$�
$�
&�&��G�G�D�M����V�_�_�.�0W�X�'�
&�
&�s�6A)�)A2c��tjd�}|jtj|d�d�tjd�}|j|jddi�|jtj|d�d�tjd�}|jtj|d�d	�tjd
�}|jtj|d�d�tjd�}|j
dd�|jtj|d�d�y)Ns2<?xml version='1.0' encoding='iso-8859-1'?><t�g />rs<täg />sD<?xml version='1.0' encoding='iso-8859-1'?><tag �ttr='v&#228;lue' />uättruvälues<tag ättr="välue" />s:<?xml version='1.0' encoding='iso-8859-1'?><t�g>text</t�g>s<täg>text</täg>r�rd)rr�r�rr�r�r�rAs  r�test_bug_xmltoolkit39zBugsTest.test_bug_xmltoolkit39s���v�v�N�O��������T�7�3�5F�G��v�v�6�7��������y�*�&=�>�������T�7�3�5�	7��v�v�/�0��������T�7�3�0�	2��z�z�*�%��������T�7�3�5F�G��z�z�%� ������l�+�������T�7�3�5�	7rc��tjd�}|jt|d��d�|jt|�d�y)Nz=<!DOCTYPE doc [<!ENTITY ldots '&#x8230;'>]><doc>&ldots;</doc>r�rs<doc>&#33328;</doc>u<doc>舰</doc>r<r9s  r�test_bug_xmltoolkit54zBugsTest.test_bug_xmltoolkit54*sF��
�F�F�(�
)������1�z�:�&�	(�����1��':�;rc���|jtj�5}tjd�ddd�|j	tj�d�y#1swY�/xYw)Ns?<!DOCTYPE doc SYSTEM 'doc.dtd'><doc>&ldots;&ndots;&rdots;</doc>z+undefined entity &ldots;: line 1, column 36)r�rrer�r�r�r�)rFr�s  r�test_bug_xmltoolkit55zBugsTest.test_bug_xmltoolkit553sU���
�
�r�}�}�
-���F�F�7�
8�.�	
����R�\�\�*�=�	?�.�
-�s�A$�$A-c�l�Gd�d�}|jttj|��y)Nc��eZdZd�Zy)�5BugsTest.test_bug_xmltoolkit60.<locals>.ExceptionFilec��t�r)r�rFr�s  rr%z:BugsTest.test_bug_xmltoolkit60.<locals>.ExceptionFile.read@s���
rN)rPrQrRr%rrr�
ExceptionFilerM?s��
rrP)r�rrr")rFrPs  r�test_bug_xmltoolkit60zBugsTest.test_bug_xmltoolkit60<s&��	�	�	
���'�2�8�8�]�_�=rc��ddd�}tj�}|jj|�|j	d�|j�}|j
|jd�jd�y)Nu’u‘)�rsquo�lsquoaF<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE patent-application-publication SYSTEM "pap-v15-2001-01-31.dtd" []>
<patent-application-publication>
<subdoc-abstract>
<paragraph id="A-0001" lvl="0">A new cultivar of Begonia plant named &lsquo;BCT9801BEG&rsquo;.</paragraph>
</subdoc-abstract>
</patent-application-publication>z.//paragraphu7A new cultivar of Begonia plant named ‘BCT9801BEG’.)	rr&r?�updater(r)r�r�r�)rF�ENTITIESr-�ts    r�test_bug_xmltoolkit62zBugsTest.test_bug_xmltoolkit62Esl��&��9��������
�
���X�&����%�	&�
�L�L�N���������/�4�4�K�	MrzSkips under coverage.c��d�}|�tjd�}td�D]	}|��|jtjd�|�y)Nc��tj�}|jdi�|jd�|j	d�y)Nrdr�)rr*rKr;r>)r`s r�xmltoolkit63z4BugsTest.test_bug_xmltoolkit63.<locals>.xmltoolkit63Ys3���>�>�#�D��J�J�u�b�!��I�I�f���H�H�U�Ori�)rp�getrefcountr�r�)rFr[�countr�s    r�test_bug_xmltoolkit63zBugsTest.test_bug_xmltoolkit63VsH��	�	������%���t��A��N���������.��6rc	��tjdd��}|jtj|�d�|jtj	tj|��jd�d�|jtjtj	tj|���d�y)N�SomeTagzdef _f():
  return 3
�r�s0<SomeTag text="def _f():&#10;  return 3&#10;" />r�)rr�r�rr�rwr9s  r�test_bug_200708_newlinez BugsTest.test_bug_200708_newlinees���
�J�J�y�'@�J�A��������Q��C�	E����������A��/�3�3�F�;�)�	+�������R�V�V�B�K�K��N�%;�<�C�	Erc�b�tj�}|jd�|j|j	�j
d�Gd�d�}tj|���}|jd�|j|j	�j
d�y)Nz<element>some text</element>r�c��eZdZd�Zy)�2BugsTest.test_bug_200708_close.<locals>.EchoTargetc�,�tjd�S)Nr��rr�r�s rr)z8BugsTest.test_bug_200708_close.<locals>.EchoTarget.closexs���z�z�)�,�,rN�rPrQrRr)rrr�
EchoTargetrews��
-rrir )rr&r(r�r)rd)rFr-ris   r�test_bug_200708_closezBugsTest.test_bug_200708_closeps}����������2�3��������+�+�Y�7�	-�	-����Z�\��2�����2�3��������+�+�Y�7rc��tjd�}tj|d�}|jt	|d��d�tjd�}tj|d�}tj|d�}|jt	|d��d�tjd�}tj|d�}tj|d�}|jt�5}t	|d��ddd�|jtj�d�y#1swY�/xYw)	Nz
{default}elemr	)r�z%<elem xmlns="default"><elem /></elem>z{not-default}elemzI<elem xmlns="default" xmlns:ns1="not-default"><elem /><ns1:elem /></elem>r\z<cannot use non-qualified names with default_namespace option)	rr�rqr�rar�r�r�r�)rFr��sr�s    r�!test_bug_200709_default_namespacez*BugsTest.test_bug_200709_default_namespace~s����J�J��'���M�M�!�_�-������1�	�B�7�	9�
�J�J��'���M�M�!�_�-���M�M�!�0�1������1�	�B�
�	�
�J�J��'���M�M�!�_�-���M�M�!�V�$��
�
�
�z�
*�b��a�9�5�+�����R�\�\�*�N�	P�+�
*�s�=D9�9Ec��tjd�}|jtj|�d�tj	dd�tjd�}|jtj|�d�tjd�}|jtj|�d�y)Nz/{http://namespace.invalid/does/not/exist/}titlesB<ns0:title xmlns:ns0="http://namespace.invalid/does/not/exist/" />rz(http://namespace.invalid/does/not/exist/sB<foo:title xmlns:foo="http://namespace.invalid/does/not/exist/" />z'{http://purl.org/dc/elements/1.1/}titles8<dc:title xmlns:dc="http://purl.org/dc/elements/1.1/" />)rr�r�r�register_namespacer9s  r�"test_bug_200709_register_namespacez+BugsTest.test_bug_200709_register_namespace�s����J�J�H�I��������Q��Q�	S�
���e�%O�P��J�J�H�I��������Q��Q�	S�

�J�J�@�A��������Q��G�	Irc��tjd�}|jtjd��|j	|dj
tj�tjd�}|jtj
d��|j	|dj
tj�y)Nr�rr)rr�r�rrr�rdr�)rFr�s  r�test_bug_200709_element_commentz(BugsTest.test_bug_200709_element_comment�s��
�J�J�s�O��	������E�"�#�����1����2�:�:�.��J�J�s�O��	������u�������1����2�5�5�)rc�l�tjd�}tj|d�}tj|d�}tjd�}|jd|�|j	t|�gd��|jd|�|j	t|�gd��y)	Nr�r�r�r�r)r�r�r�r�)r�r�r�r�)rr�rqr�r�rf�rFr�r�r�r�s     r�test_bug_200709_element_insertz'BugsTest.test_bug_200709_element_insert�s����J�J�s�O���M�M�!�S�!���M�M�!�S�!���J�J�s�O��	����A�������*�O�<�	����Q�������*�,@�Arc�4�tjd�}tj|d�}tjd�}|j	|�|jt
|jtj��tjg�y)Nr�r�zTEST-b)rr�rqrrr�r�rfr�)rFr�r��	comment_bs    r�test_bug_200709_iter_commentz%BugsTest.test_bug_200709_iter_comment�sa���J�J�s�O���M�M�!�S�!���J�J�x�(�	�	������������r�z�z�(:�;�b�j�j�\�Jrc���tj�}|jd�}|jdi�}|j	d�}|j�}|j
t|�d�y)Nr;rdr)rr*r;rKr>r)r�ra)rFr�r�s   r�test_bug_1534630zBugsTest.test_bug_1534630�sX���n�n����H�H�V����I�I�e�R� ���G�G�E�N���I�I�K������1��y�1rc���tjd�}|jtj|d�d�tjd�}|jtj|d�d�y)Ns7<?xml version='1.0' encoding='utf-8'?><body>tãg</body>r2s<<?xml version='1.0' encoding='ascii'?>
<body>t&#227;g</body>s;<?xml version='1.0' encoding='iso-8859-1'?><body>t�g</body>r�r9s  r�test_issue6233zBugsTest.test_issue6233�sj���F�F�.�
/��������Q��0�)�	*�
�F�F�*�
+��������Q��0�)�	*rc���tjd�}|jt|�dg�tjt�}|dd|dd|jt|�gd��y)Nr�rd�rdrdr_)rr�r�rfr�)rFr\�newelems   r�test_issue6565zBugsTest.test_issue6565�sY���v�v�+�,�������-��w�7��&�&��$���!�*��Q�������-�/H�Irc�\�tjdd�tjdd�y)N�	test10777z
http://myuri/)rror�s r�test_issue10777zBugsTest.test_issue10777�s$��	���k�?�;�
���k�?�;rc�2��G�fd�d�}tjd��|��_�j�}t	|�}|j||�|j�jt�|j�jd�y)Nc���eZdZ�fd�Zy)�%BugsTest.test_lost_text.<locals>.Textc���d�_y)N�changedTrar9s �r�__bool__z.BugsTest.test_lost_text.<locals>.Text.__bool__�s
���"���rN�rPrQrRr��r�s�rr�r������
rr�rdr�)rr�r�r�rar�r�r��rFr�r�rWr�s    @r�test_lost_textzBugsTest.test_lost_text�sr���	�	�

�J�J�u�������
�J�J�L����G�����a��&����a�f�f�c�*��������+rc���G�fd�d�}tjd���jtjd��|��d_�j	�}t|�}|j
||�|j
�djt�|j�djd�y)Nc���eZdZ�fd�Zy)�%BugsTest.test_lost_tail.<locals>.Textc���d�d_y�Nr�rT)r�r9s �rr�z.BugsTest.test_lost_tail.<locals>.Text.__bool__�s���%��!��	�rNr�r�s�rr�r��r�rr�rArdrr�)	rr�r�r�r�rar�r�r�r�s    @r�test_lost_tailzBugsTest.test_lost_tail�s����	�	�

�J�J�v���	������E�"�#��F��!��	�
�J�J�L����G�����a��&����a��d�i�i��-�����1����I�.rc����G��fd�d�}tjd���jtj|����jtjd���jd��	t	��}|jj|�|j�djt�|j�djd�y#t
$r|j
d�Y�{wxYw)Nc���eZdZ��fd�Zy)�$BugsTest.test_lost_elem.<locals>.Tagc�L��tjd��d<t��yr�)rr�ra)rFr
r�r�s  ��rrz+BugsTest.test_lost_elem.<locals>.Tag.__eq__	s����z�z�)�,��!���Q��rN�rPrQrRr)r�r�s��rr�r�	s���
rr�rArdzgenerators are not reentrantrr�)rr�r�r�rar�r	r�rdr�r�)rFr�rWr�r�s   @@r�test_lost_elemzBugsTest.test_lost_elem	s����	�	�
�J�J�v���	������C�E�"�#�	������E�"�#�
�F�F�5�M��	:��Q��A�	
���a�e�e�S�)����a��d�h�h��,�����1����9�-��	�	:��M�M�8�9�	:�s�C.�.D�
Dc��d|z}tj|�}|j|jd�|j	d��y)Ns<a b="%s"/>r�r)rr�r�rw�decode)rFr�r�rAs    r�check_expat224_utf8_bugz BugsTest.check_expat224_utf8_bug	s:���t�#���v�v�c�{��������#�����G�(<�=rc�P�d}|j|�d}|j|�y)Nsààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààsxàààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààà)r�r�s  r�test_expat224_utf8_bugzBugsTest.test_expat224_utf8_bug	s*��"���$�$�T�*�(���$�$�T�*rc�h�ttd�5}|j�}ddd�tj	�}|jd�}|j
d�j�}|jdd�}|dd}|j|jd�|�y#1swY��xYw)Nr[r�rrr�r����)
r$�UTF8_BUG_XMLFILEr%rr�rwr��stripr7r�)rF�fp�rawrA�xmlattrr�s      r�test_expat224_utf8_bug_filez$BugsTest.test_expat224_utf8_bug_file*	s���
�"�D�
)�R��'�'�)�C�*��}�}�S�!���(�(�3�-���z�z�'�"�(�(�*���|�|�F�C�(���A�b�z��������#���-�*�
)�s�B(�(B1c���|jttj�jd�|jttj�jdd�y)Nrd)r�r8rr*rKr�s r�test_39495_treebuilder_startz%BugsTest.test_39495_treebuilder_start7	sB�����)�R�^�^�%5�%;�%;�U�C����)�R�^�^�%5�%;�%;�U�D�Irc	���|jttjd�jd�td�D��|jttjd�jd�d��|jtdtjd�j�fd�td�D��y)Nrdc3�&K�|]	}ddz���y�w�r�rNr��.0r�s  r�	<genexpr>zEBugsTest.test_issue123213_correct_extend_exception.<locals>.<genexpr>>	s����1��1�1�Q�3����r�c��td���N�	mymessage�r8rrrr,z=BugsTest.test_issue123213_correct_extend_exception.<locals>.fD	�
���K�(�(rr�c3�,�K�|]}�����
y�wrr�r�r�r,s  �rr�zEBugsTest.test_issue123213_correct_extend_exception.<locals>.<genexpr>I	s�����&=�H�q�q�s�H���)r��ZeroDivisionErrorrr�r�r�r8r�)rFr,s @r�)test_issue123213_correct_extend_exceptionz2BugsTest.test_issue123213_correct_extend_exception;	s�������+�R�Z�Z��->�-E�-E�1��a��1�	3�	
���)�R�Z�Z��%6�%=�%=�t�D�	)�	
����{��J�J�u��$�$�&=�E�!�H�&=�	?rN)$rPrQrRr;r=rBrDrFrHrJrQrXrr
rp�gettracer^rbrjrmrprrrurxrzr|r�r�r�r�r�r�r�r�r�r�rrrr5r5�s����8B�N�Y�7�2<�?�>�M�"�X�_�_�\�S�\�\�^�%<�=�7�>�7�	E�8�P�.
I�
*�B�K�2�
*�J�<�
,�/� .�(>�

+�.�J�?rr5c�B�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zy
)�BasicElementTestc���d}ddi}tj||�}|j|tj�|jdt	|��|jdt	|��|jdt	|��|jdt	|��|j|j|�|j|j�|j|j�|j|j|�|j|j|�d|d	<|j|j|�|j|j|�y)
Nr�zix�wyprdr�r�r��bazr)
rr�r�r�r�r�rdr�r�r�rr�r�)rFrdr��element_foos    r�
test___init__zBasicElementTest.test___init__R	s&�����%�!���j�j��f�-��	
���k�2�:�:�6��
�
�e�S��-�.��
�
�h��K� 0�1��
�
�f�c�+�.�/��
�
�f�c�+�.�/�	
������#�.����+�*�*�+����+�*�*�+�	
����+�+�V�4�����+�+�V�4���u�
�����+�+�V�4����K�.�.��7rc��tjdddi�}|jtjdddi��tj|�}|j	||�|j|j|j�|j|j|j�|j|j|j�|jt|�t|��tj||�D]\}}|j||��|j|j|j�y�Nrr�r�rr��qix)rr�r�rrr�rdr�r�r��	itertools�zip_longest�assertIsr��rFr��element_foo2r�r�s     r�
test___copy__zBasicElementTest.test___copy__m	s���j�j��%��(8�9�����2�:�:�e�u�e�-=�>�?��y�y��-��	
����{�3�	
����)�)�;�?�?�;�����*�*�K�,<�,<�=�����*�*�K�,<�,<�=�	
����\�*�C��,<�=�!*� 5� 5�k�<� P��V�V��M�M�&�&�)�!Q�	
����,�,�k�.@�.@�Arc��tjdddi�}|jtjdddi��tj|�}|j||�|j
|j|j�|j
|j|j�|j
|j|j�|j
t|�t|��tj||�D]\}}|j||��|j|j|j�|j
|j|j�d|jd<|j|j|j�|j|j|j�yr�)rr�r�rrrr�rdr�r�r�r�r�r�r�r�s     r�test___deepcopy__z"BasicElementTest.test___deepcopy__�	sx���j�j��%��(8�9�����2�:�:�e�u�e�-=�>�?��}�}�[�1��	
����{�3�	
����)�)�;�?�?�;�����*�*�K�,<�,<�=�����*�*�K�,<�,<�=�	
����\�*�C��,<�=�!*� 5� 5�k�<� P��V�V����V�V�,�!Q�	
����,�,�k�.@�.@�A�����,�,�k�.@�.@�A�%*����5�!�����,�,�k�.@�.@�A����L�/�/��1C�1C�Drc�R�tjd�}|jt|jd�|jt|j
tjd�dg�|jt|jdd�tjd�g|dd|jt�5d|d<ddd�|jt�5tjd�dg|ddddd�t|d�r*ddgdd	d
d�}|jt|j|�t|d�rKGd
�dtj�}|d�g|dd|jttj|�yy#1swY��xYw#1swY��xYw)N�joer�rrr�__setstate__rdr�r�r�)rd�	_childrenr�r�r��__deepcopy__c��eZdZd�Zy)�9BasicElementTest.test_augmentation_type_errors.<locals>.Ec��yrr)rF�memos  rr�zFBasicElementTest.test_augmentation_type_errors.<locals>.E.__deepcopy__�	s��rN)rPrQrRr�rrr�Er��	s�� rr�)rr�r�r8r�r�r�r�r�rr)rFr��stater�s    r�test_augmentation_type_errorsz.BasicElementTest.test_augmentation_type_errors�	sO���J�J�u������)�Q�X�X�s�3����)�Q�X�X��
�
�5�0A�5�/I�J����)�Q�X�X�q�%�8��
�
�5�!�"��!��
�
�
�y�
)��A�a�D�*�
�
�
�y�
)��J�J�u�%�u�-�A�a�D�*��1�n�%��"�V� ����E�
���i�����?��1�n�%�
 �B�J�J�
 ��e�H�:�A�a�D����i�����:�&�*�
)��
)�
)�s�=F� F�F�F&c��Gd�d�}|�}tjd|��|_tj|�}~t�|j
|��tjd�}|�}||_tj|�}tj|d|��}~~~t�|j
|��tjd�}tjd�}tjd�}|j|�|j|�|j|�tj|�}~~~t�|j
|��y)	Nc��eZdZy)�.BasicElementTest.test_cyclic_gc.<locals>.DummyN�rPrQrRrrr�Dummyr��	���rr�r�)r�rrrr)	rr��dummyref�weakref�refrr�rqr�)rFr�r��wrefr�rrrs        r�test_cyclic_gczBasicElementTest.test_cyclic_gc�	s��	�	�
�G���Z�Z��A�Z�.��
��{�{�1�~��
������$�&�!�
�J�J�u����G����
��{�{�1�~��
�]�]�1�e�!�]�
,��
�q�"������$�&�!��Z�Z��
��
�Z�Z��
��
�Z�Z��
��
�	�	�"�
�
�	�	�"�
�
�	�	�"�
��{�{�2�����B������$�&�!rc���d��fd�}tjd�}tj||�}|j	|�j
d�~t
�|j	�d�|j	|�d�y)NFc�
��d�y�NTr)�w�flags �r�wref_cbz.BasicElementTest.test_weakref.<locals>.wref_cb�	s����Drr�T)rr�r�r�r�rdr)rFr�r�r�r�s    @r�test_weakrefzBasicElementTest.test_weakref�	sl�����	�
�J�J�s�O���{�{�1�g�&���������S�)�
�������t�$�������&rc���tjdddd��}|j|jdd��d�|j|jd	d��d�y)
Nrr�r�r�)r�r��zr��)r	r�)rr�r�rw)rFrs  r�test_get_keyword_argsz&BasicElementTest.test_get_keyword_args�	sR��
�Z�Z��!�q�A�Z�
.���������Q��/��3��������Q��/��3rc	��tdtjdz�D�]6}t|jd��D�]\}}|jdd��}d|_d|_|j|d	�j|jd
��|j|jd	��|jd�djd
d�|j|d|||�}|j|jd�|j|jdd�|jt!|�d�|j#||�����9y)Nr�r���repeatr�*)rztext goes herezopposite of head�child�
grandchildz
.//grandchildrr�zother valuerIr)r�rq�HIGHEST_PROTOCOLrrkr�r�r�rqr�r�r�r�r�rdr�r�r�)rFr|rzr{r�rs      r�test_picklezBasicElementTest.test_pickle�	s"���1�f�5�5��9�:�E�")�$�,�,�q�"A�"A�����N�N�5�b�N�1��)���+����!�!�!�W�-�4�4�V�^�^�L�5Q�R��������0�1��	�	�/�*�1�-�1�1�&�-�H��)�)�!�-D�*0�&�%�A��� � �����/�� � ����5�!1�2�6�� � ��R��!�,��(�(��B�/�#B�;rc	��tdtjdz�D]�}t|jd��D]�\}}d}|j|�}|j
|j�dd�|j|d|||�}|j
|jd�|j
|djd	�����y)
Nr�r�r�z\<?xml version="1.0"?>
                    <group><dogs>4</dogs>
                    </group>rd�grouprIr�dogs)
r�rqr�rrkr�r��__getstate__r�rd)rFr|rzr{�XMLTEXTrrs       r�test_pickle_issue18997z'BasicElementTest.test_pickle_issue18997
s����1�f�5�5��9�:�E�")�$�,�,�q�"A���� ���&�&�w�/��� � ����!2�5�!9�7�C��)�)�"�.E�*0�&�%�A��� � �����1�� � ��A����F�3�#B�;rN)rPrQrRr�r�r�r�r�r�r�r�r�rrrr�r�P	s2��8�6B�0E�<;�8!"�F'�4�
0�&4rr�c��eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Ze
jd�d��Zd
�Zd�Zd�Zd�Zd�Zd�Zy)�BadElementTestc�,��G�fd�d�}|�g�tjd�}	|j��Gd�d|tj�}|d�g�tjd�}|j��y#t$rY�UwxYw)Nc�"��eZdZe�fd��Zy)�2BadElementTest.test_extend_mutable_list.<locals>.Xc�V��tjd�g�ddtjS)Nr�rg�rF�Ls �r�	__class__z<BadElementTest.test_extend_mutable_list.<locals>.X.__class__
s"����
�
�5�)�*��!���z�z�!rN�rPrQrR�propertyr�rs�r�Xr
����
�
"��
"rrrc��eZdZy)�2BadElementTest.test_extend_mutable_list.<locals>.YNr�rrr�Yr$
r�rrr��rr�r�r8�rFrr�rrs    @r�test_extend_mutable_listz'BadElementTest.test_extend_mutable_list
s����	"�	"�
�S�E���J�J�u���	�
�H�H�Q�K�	��2�:�:�	�
�s�V�H���J�J�u���	�������	��	�s�B�	B�Bc�|��G�fd�d�}|�tjd�g�tjd�}	|j��Gd�d|tj�}|d�tjd�g�tjd�}|j��y#t$rY�iwxYw)Nc�"��eZdZe�fd��Zy)�3BadElementTest.test_extend_mutable_list2.<locals>.Xc�.���dd�=tjSrrgrs �rrz=BadElementTest.test_extend_mutable_list2.<locals>.X.__class__,
s����a�D��z�z�!rNrr
s�rrr+
rrrr�rc��eZdZy)�3BadElementTest.test_extend_mutable_list2.<locals>.YNr�rrrrr7
r�rrrrrs    @r�test_extend_mutable_list2z(BadElementTest.test_extend_mutable_list2*
s����	"�	"�
�S�"�*�*�U�#�$���J�J�u���	�
�H�H�Q�K�	��2�:�:�	�
�u�X�r�z�z�%�(�)���J�J�u���	�������	��	�s�B/�/	B;�:B;c�(�|jd��y�NT��raises��do_test_remove_with_clearr�s r�%test_remove_with_clear_assume_missingz4BadElementTest.test_remove_with_clear_assume_missing=
s��	
�&�&�d�&�3rc�(�|jd��y�NFrrr�s r�&test_remove_with_clear_assume_existingz5BadElementTest.test_remove_with_clear_assume_existingB
s��	
�&�&�e�&�4rc	�����Gd�dtj�}G��fd�d|�}G��fd�d|�}�r�fd�}nt}�j|jt
j�|df|d	ffD�]b\}}�j
�j|�
��||df||df||d
ffD]g\}}	}
�j|
�5|d���j|	d�g�|�5�j|d��ddd�ddd��i�j||�}|D]o\}}	}}
�j|
�5|d���j|	d�|d�g�|�5�j|d��ddd�ddd��q�jd�5|d���j|d��t|�5}
t|�5}�j�d�ddd�ddd�
j�j�ddd�t�xr�xr||u}t�r�r||ur���j||�}|D]k\}}	}
�j|
�5|d���j|	d�|d�g�|�5�j�d�ddd�ddd��m��ey#1swY���xYw#1swY��HxYw#1swY��oxYw#1swY���xYw#1swY��xYw#1swY��xYw#1swY��xYw#1swY�rxYw#1swY��xYw)Nc��eZdZy)�3BadElementTest.do_test_remove_with_clear.<locals>.ENr�rrrr�r&N
s��Lrr�c���eZdZ��fd�Zy)�3BadElementTest.do_test_remove_with_clear.<locals>.Xc����dd�=�Srr�rF�orrAs  ��rrz:BadElementTest.do_test_remove_with_clear.<locals>.X.__eq__R
s�����G�!�z�!rNr��rrAs��rrr(Q
����
"rrc���eZdZ��fd�Zy)�3BadElementTest.do_test_remove_with_clear.<locals>.Yc�*���j��Sr)r�r*s  ��rrz:BadElementTest.do_test_remove_with_clear.<locals>.Y.__eq__W
s����
�
��!�z�!rNr�r,s��rrr/V
r-rrc�.���jt�Sr�r�r�r�s�r�<lambda>z:BadElementTest.do_test_remove_with_clear.<locals>.<lambda>\
����$�*;�*;�J�*Grzdel root[:]zroot.clear())�side_effectzremove missing E() from [Z()]zremove missing Z() from [E()]zremove missing Z() from [Z()]�top�one�missing�twozremove root[0] from [Z()]�remrr�)rr�rr�rr#�enterContextr�r�r��'cases_for_remove_missing_with_mutationsr�r&�assert_not_calledr�(cases_for_remove_existing_with_mutations)rFrr�rr�get_checker_context�Zr5�R�U�description�cases�Vr,�g�
is_specialrAs``              @rrz(BadElementTest.do_test_remove_with_clearG
s����	M��
�
�	M�	"��	"�
	"��	"�
�"G��"-���
�
�a�h�h��
�
�.� !�=�1�A�~�3F�G�N�A�{����d�l�l�{�l�C�D��A�6�7��A�6�7��A�6�7�&�!��1�k�
�\�\�+�.��U�8�D��K�K��5��
�+�,�.����A�i�L�1�/�/�.�&��@�@��A�F�E�(-�$��1�a���\�\�+�.��U�8�D��K�K��5��1�U�8� 4�5�,�.����A�i�L�1�/�/�.�).����9�:���x�����A�e�H�%�"�1�%��M�!�,<���K�K��Q��(�-=�%��#�#�%��#�#�%�
;�2�3�I��I�1��6�J�'�)�f��a����E�E�a��K��).�%�A�q�+����k�2� ��x�����Q�u�X�q��x�$8�9�0�2� �K�K��Q��0�3�3�2�*/�kH�/�.��/�.��/�.��/�.��-=�,<��%�%��;�:��:3�2��3�2�s��(K-�/K 	�K-�/L�5K:	�
L�0+L.�L!�'L	�<L!�(L.�/M�5L;	�
M� K*
�%K-�-K7�:L
�?L�L�L
�L!�!L+�&L.�.L8	�;M
�M�Mc�(�|jd��yr��do_test_remove_with_mutate_rootr�s r�+test_remove_with_mutate_root_assume_missingz:BadElementTest.test_remove_with_mutate_root_assume_missing�
s��	
�,�,�D�,�9rc�(�|jd��yr"rIr�s r�,test_remove_with_mutate_root_assume_existingz;BadElementTest.test_remove_with_mutate_root_assume_existing�
s��	
�,�,�E�,�:rc�����
�tj}G��
fd�d|�}�r�fd�}nt}�j||�}|D]o\}}}}	�j	|	�5|d��
�
j|d�|d�g�|�5�
j
|d��ddd�ddd��q�j||�}|D]k\}}}	�j	|	�5|d��
�
j|d�|d�g�|�5�
j
�
d	�ddd�ddd��my#1swY��xYw#1swY��xYw#1swY�-xYw#1swY��xYw)
Nc���eZdZ��fd�Zy)�9BadElementTest.do_test_remove_with_mutate_root.<locals>.Zc����d=�Sr�rr*s  ��rrz@BadElementTest.do_test_remove_with_mutate_root.<locals>.Z.__eq__�
s�����G�!�z�!rNr�r,s��rr@rP�
r-rr@c�.���jt�Srr2r�s�rr3z@BadElementTest.do_test_remove_with_mutate_root.<locals>.<lambda>�
r4rr6r7r9r8r:r�)rr�rr<r�r�r�r>)rFrr�r@r?rDrArBrErCrAs``        @rrJz.BadElementTest.do_test_remove_with_mutate_root�
s;����J�J��	"��	"�
�"G��"-���<�<�Q��B��$)� �A�q�!�[����k�*���x�����Q�u�X�q��x�0�1�(�*��K�K��)��-�+�+�*�%*��=�=�a��C��!&��A�q�+����k�*���x�����Q�u�X�q��x�0�1�(�*��K�K��Q��(�+�+�*�"'�+�*��+�*��+�*��+�*�sH�/E�D9�$E�"/E�E�&E�9E�>E�E	�E�E�E'	c#�&K�||f||f||ffD]7\}}d|j�d|j�d|j�d�}||||f���9||f||f||f||ffD]7\}}d|j�d|j�d|j�d�}||||f���9y�w)Nzremove missing z	() from [�(), �()]�rP)rFr�r@rBrErCs      rr<z6BadElementTest.cases_for_remove_missing_with_mutations�
s�������V�a��V�a��V�,�D�A�q�,�Q�Z�Z�L�9� �z�z�l�$�q�z�z�l�#�?�K��Q��;�&�&�-�
��V�a��V�a��V�a��V�4�D�A�q�,�Q�Z�Z�L�9� �z�z�l�$�q�z�z�l�#�?�K��Q��;�&�&�5�s�BBc#�K�||df||df||dffD]7\}}}d|j�d|j�d|j�d�}|||f���9y�w)Nzremove root[1] from [E(), Z()]zremove root[1] from [Z(), E()]zremove root[1] from [Z(), Z()]zremove root[1] (of type z) from [rTrUrV)rFr�r@rBrArCs      rr>z7BadElementTest.cases_for_remove_existing_with_mutations�
sy������3�4�
��3�4�
��3�4�"
��A�q�+�
6�a�j�j�\�B$�$%�J�J�<�t�A�J�J�<�s�D�K��Q��#�#�"
�s�A
A�c���tjd�}t|d|�5|jt�5t|�ddd�ddd�y#1swY�xYw#1swYyxYw)Nrrd)rr�rr��RuntimeErrorr�r9s  r�test_recursive_reprz"BadElementTest.test_recursive_repr�
sP��
�J�J�u���
�q�%��
#��"�"�<�0��Q��1�$�
#�0�0��$�
#�s"�A"�A�A"�A	�A"�"A+c�`��G�fd�dt�}tj�}|jdi�|j	d�|j	|d��|j	d�|jd�|j
��|j�jd�y)Nc���eZdZ�fd�Zy)�/BadElementTest.test_element_get_text.<locals>.Xc�>��	�jy#t$rYywxYwr)r��	NameErrorrss �r�__del__z7BadElementTest.test_element_get_text.<locals>.X.__del__�
s!�����I�I�� ����s��	�N�rPrQrRra�r\s�rrr^�
����
rrrd�ABCD�EFGH�IJKL�ABCDEFGHIJKL)	r�rr*rKr;r>r)r�r��rFrr�r\s   @r�test_element_get_textz$BadElementTest.test_element_get_text�
s{���	��	�
�N�N���	����r��	���v��	���q��y��	���v��	���e���w�w�y��������N�3rc���G�fd�dt�}tj�}|jdi�|jdi�|j	d�|jd�|j|d��|jd�|j	d�|j
��|j�djd	�y)
Nc���eZdZ�fd�Zy)�/BadElementTest.test_element_get_tail.<locals>.Xc�D��	�djy#t$rYywxYwr�)r�r`rss �rraz7BadElementTest.test_element_get_tail.<locals>.X.__del__�
s%������G�L�L�� ����s��	�Nrbrcs�rrrm�
rdrrrArdrerfrgrrh)	r�rr*rKr>r;r)r�r�ris   @r�test_element_get_tailz$BadElementTest.test_element_get_tail�
s����	��	�
�N�N���	������	����r��	���e��	���v��	���q��y��	���v��	���f�
��w�w�y������a����~�6rc���G�fd�d�}tjd���jtjd���d|��jtjd���dd|��y)Nc���eZdZ�fd�Zy)�%BadElementTest.test_subscr.<locals>.Xc����dd�=y�Nr�rr9s �r�	__index__z/BadElementTest.test_subscr.<locals>.X.__index__s
����a�D�rN�rPrQrRrur�s�rrrr����
rrr\r�rr�)rr�r�)rFrr�s  @r�test_subscrzBadElementTest.test_subscrsa���	�	�

�J�J�v���	������G�$�%�	�$�1�3��	������G�$�%�	�!�B�q�s�(�rc����G�fd�d�}tjd��td�D]'}�jdtjd���)g�dd|��<y)Nc���eZdZ�fd�Zy)�)BadElementTest.test_ass_subscr.<locals>.Xc���g�ddyrtrr9s �rruz3BadElementTest.test_ass_subscr.<locals>.X.__index__!s�����!��rNrvr�s�rrr{ rwrrr\r�rr�)rr�r�r�)rFrr9r�s   @r�test_ass_subscrzBadElementTest.test_ass_subscrsU���	�	�

�J�J�v����r��A�
�H�H�Q��
�
�7�+�,����!�B�q�s�(�rc���d�}tj|��}|jdi�|jd�|j	t
|jdi�~t
�y)Nc��gSrr�r�r�s  r�element_factoryz>BadElementTest.test_treebuilder_start.<locals>.element_factory-����Ir�r�rdrer�)rr*rKr;r��AttributeErrorr�rFr�r�s   r�test_treebuilder_startz%BadElementTest.test_treebuilder_start+sP��	��N�N�?�N�;��	����r��	���v�����.�!�'�'�6�2�>�
��rc���d�}tj|��}|jdi�|jd�|j	t
|jd�~t�y)Nc��gSrrr�s  rr�z<BadElementTest.test_treebuilder_end.<locals>.element_factory9r�rr�rdre)rr*rKr;r�r�r>rr�s   r�test_treebuilder_endz#BadElementTest.test_treebuilder_end7sN��	��N�N�?�N�;��	����r��	���v�����.�!�%�%��7�
��rN)rPrQrRrrr r#rrKrMrJr<r>r�infinite_recursionr[rjrorxr}r�r�rrrrr
su���&�&4�
5�
U1�n:�
;�
)�>'�
$� �W����#��$��4�&7�*��
�
rrc�0�eZdZd�Zd�ZejZy)�MutationDeleteElementPathc�@�tj|g|���}||_|Sr�r��__new__r\�r$r\r,rFs    rr�z!MutationDeleteElementPath.__new__E�!���{�{�3�&��&����	��rc�"�|jdd�=yr�rc�rFr+s  rrz MutationDeleteElementPath.__eq__Js���I�I�a�L�rN�rPrQrRr�rr��__hash__rrrr�r�D����
��|�|�Hrr�c�0�eZdZd�Zd�ZejZy)�MutationClearElementPathc�@�tj|g|���}||_|Srr�r�s    rr�z MutationClearElementPath.__new__Rr�rc�8�|jj�yr�)r\r�r�s  rrzMutationClearElementPath.__eq__Ws���	�	����rNr�rrrr�r�Qr�rr�c�*�eZdZd�Zej
Zy)�BadElementPathc��ddz�)Nr�rrr�s  rrzBadElementPath.__eq___s����c�	rN)rPrQrRrr�r�rrrr�r�^s����|�|�Hrr�c�X��eZdZ�fd�Z�fd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Z�xZ
S)�BadElementPathTestc�^��t�|��ddlm}|j|_i|_y�NrrC)�super�setUprErDr��
path_cache�rFrDrs  �rr�zBadElementPathTest.setUpfs$���
��
��)�%�,�,�����rc�P��ddlm}|j|_t�|��yr�)rErDr�r�r��tearDownr�s  �rr�zBadElementPathTest.tearDownls���)�!�_�_���
���rc��ttfD]n}|j|�5tj	d�}|jtj	d�g�|j
||d��ddd��py#1swY�{xYw�Nrrr�)r�r�r�rr�r�r��rFr$r�s   r�test_find_with_mutatingz*BadElementPathTest.test_find_with_mutatingqsf��-�/G�H�C����c�"��J�J�u�%�����"�*�*�U�+�,�-����s�1�c�{�#�#�"�I�"�"���AA?�?B	c���tjd�}|jtjd�g�	|jt	d��y#t
$rYywxYwr�)rr�r�r�r�r�r9s  r�test_find_with_errorz'BadElementPathTest.test_find_with_errorxsP���J�J�u���	���"�*�*�U�#�$�%�	�
�F�F�>�#�&�'�� �	��	���A�	A#�"A#c��ttfD]n}|j|�5tj	d�}|jtj	d�g�|j
||d��ddd��py#1swY�{xYwr�)r�r�r�rr�r�r�r�s   r�test_findtext_with_mutatingz.BadElementPathTest.test_findtext_with_mutating�sf��-�/G�H�C����c�"��J�J�u�%�����"�*�*�U�+�,�-��
�
�3�q�#�;�'�#�"�I�"�"�r�c���tjd�}|jtjd�g�	|jt	d��y#t
$rYywxYwr�)rr�r�r�r�r�r9s  r�test_findtext_with_errorz+BadElementPathTest.test_findtext_with_error�sP���J�J�u���	���"�*�*�U�#�$�%�	�
�J�J�~�c�*�+�� �	��	�r�c���tjd�}tj|d�}dddgdig}|D]*}||_|j	|jd�|��,y)NrrrRrFr�./bar�rr�rqr�r�r�)rF�	root_elem�sub_elem�falsey�vals     r�(test_findtext_with_falsey_text_attributez;BadElementPathTest.test_findtext_with_falsey_text_attribute�s^���J�J�u�%�	��=�=��E�2���a���B��+���C��H�M����Y�/�/��8�#�>�rc��tjd�}tj|d�}d|_|j	|jd�d�y)Nrrr�rRr�)rFr�r�s   r�&test_findtext_with_none_text_attributez9BadElementPathTest.test_findtext_with_none_text_attribute�sB���J�J�u�%�	��=�=��E�2����
�����+�+�G�4�b�9rc��ttfD]n}|j|�5tj	d�}|jtj	d�g�|j
||d��ddd��py#1swY�{xYwr�)r�r�r�rr�r�r�r�s   r�test_findall_with_mutatingz-BadElementPathTest.test_findall_with_mutating�sf��-�/G�H�C����c�"��J�J�u�%�����"�*�*�U�+�,�-��	�	�#�a��+�&�#�"�I�"�"�r�c���tjd�}|jtjd�g�	|jt	d��y#t
$rYywxYwr�)rr�r�r�r�r�r9s  r�test_findall_with_errorz*BadElementPathTest.test_findall_with_error�sP���J�J�u���	���"�*�*�U�#�$�%�	�
�I�I�n�S�)�*�� �	��	�r�)rPrQrRr�r�r�r�r�r�r�r�r�r��
__classcell__)rs@rr�r�es5��� ��
$��(��?�:�'�rr�c�*�eZdZd�Zd�Zd�Zd�Zd�Zy)�ElementTreeTypeTestc��|jtjt�|jtjt�|jtj
t�|jtjt�|jtjt�|jtjt�yr)	r�rrerrrIr@r�r*r&r�s r�test_istypezElementTreeTypeTest.test_istype�sz�����b�m�m�T�2����b�h�h��-����b�n�n�d�3����b�j�j�$�/����b�n�n�d�3����b�l�l�D�1rc�(�Gd�dtj�}|d�}|j|tj�|j||�|j|jd�d|_|j|j
d�y)Nc��eZdZy)�DElementTreeTypeTest.test_Element_subclass_trivial.<locals>.MyElementNr�rrr�	MyElementr��r�rr�rr�)rr�r�r�rdr��rFr��myes   r�test_Element_subclass_trivialz1ElementTreeTypeTest.test_Element_subclass_trivial�ss��	��
�
�	��������c�2�:�:�.����c�9�-�������%�(����������5�)rc����G�fd�dtj���dddd�dd�	�}|j|jd
�|jt	|j��gd��y)Nc�&���eZdZif��fd�	Z�xZS)�HElementTreeTypeTest.test_Element_subclass_constructor.<locals>.MyElementc�.��t�|�|dz|fi|��y)N�__)r�r�)rFrdr��extrar�rs    ��rr�zQElementTreeTypeTest.test_Element_subclass_constructor.<locals>.MyElement.__init__�s����i��/��d�
�F�L�e�Lr)rPrQrRr�r�)rr�s@�rr�r��s���+-�
M�
Mrr�rr�r�)r�r�r��)r�r��foo__))r�r�)r�r�)r�r�)r�r�)rr�r�rdrr�)rFr�r�s  @r�!test_Element_subclass_constructorz5ElementTreeTypeTest.test_Element_subclass_constructor�s^���	M��
�
�	M���Q�Q�/�1��:��������'�*������	�	��,�4�	6rc��Gd�dtj�}|d�}|j|j�d�y)Nc��eZdZd�Zy)�GElementTreeTypeTest.test_Element_subclass_new_method.<locals>.MyElementc��|jSrrcr�s r�	newmethodzQElementTreeTypeTest.test_Element_subclass_new_method.<locals>.MyElement.newmethod�s���x�x�rN)rPrQrRr�rrrr�r��s��
 rr�r�)rr�r�r�r�s   r� test_Element_subclass_new_methodz4ElementTreeTypeTest.test_Element_subclass_new_method�s4��	 ��
�
�	 ������������%�0rc���Gd�dtj�}tjd�}d|_|d�}d|_|j|�|j	|jd�d�|j	|j
d�jd�t|jd��}|j	t|�d|�|j	|djd�y)	Nc��eZdZy)�AElementTreeTypeTest.test_Element_subclass_find.<locals>.MyElementNr�rrrr�r��r�rr�rr�rror�r)rr�r�r�r�r�r�rdr�r�r�)rFr�r��sub�founds     r�test_Element_subclass_findz.ElementTreeTypeTest.test_Element_subclass_find�s���	��
�
�	�
�J�J�u�������������	����
�������E�*�I�6���������*�*�E�2��Q�Y�Y�u�%�&������U��Q��.�����q����u�-rN)rPrQrRr�r�r�r�r�rrrr�r��s��2�*�6�1�
.rr�c�<�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
y	)
�ElementFindTestc��tjt�}|j|j	d�j
d�|j|j	d�j
d�|j|j	d�j
d�tjt�|d<|j|j	d�j
d�|j|jd�d�|j|jd�d�|j|jd�d	�|j|jdd
�d	�|j|jd��|j|jdd
�d
�|jtjd�jd
�d	�y)Nrdr��./tagr�zsection/nexttag�nexttagr�rorRr	�togz<tag><empty /></tag>�empty)	rr�r�r�r�rd�SAMPLE_SECTIONr�r�r9s  r�test_find_simplez ElementFindTest.test_find_simple�sb���F�F�:�����������*�*�E�2�������
�.�2�2�E�:���������,�,�e�4��v�v�n�%��!�������� 1�2�6�6�	�B�������G�,�f�5�������M�2�I�>�	
������$5�6��;�������$5�y�A�2�F�	
���!�*�*�U�+�,�������E�9�5�y�A�	
������ 6�7�@�@��I�2�Nrc��d}tj|�}|j|jd�jdd�|j|jd�jdd�|j|jd�jdd�|j|jd	�jdd
�|j|jd�jdd�|jtd|jd
�|jtd|jd�|jtd|jd�|jtd|jd�y)Nz�
        <body>
            <tag class='a'/>
            <tag class='b'/>
            <tag class='c'/>
            <tag class='d'/>
        </body>z./tag[1]�classr�z./tag[2]r�z
./tag[last()]r�z./tag[last()-1]r�z./tag[last()-2]�XPathz./tag[0]z	./tag[-1]z./tag[last()-0]z./tag[last()+1])rr�r�r�r�r��SyntaxError)rF�
LINEAR_XMLr�s   r�test_find_xpathzElementFindTest.test_find_xpath�s3���
�
�F�F�:���	
������
�+�2�2�7�;�S�A�������
�+�2�2�7�;�S�A��������0�7�7��@�#�F������� 1�2�9�9�'�B�C�H������� 1�2�9�9�'�B�C�H����{�G�Q�V�V�Z�H����{�G�Q�V�V�[�I����{�G�Q�V�V�=N�O����{�G�Q�V�V�=N�Orc��tjt�}tjt�|d<|j	t|j
d��dg�|j	t|j
d��ddg�|j	t|j
d��g�|j	t|j
d��g�|j	t|j
d��gd��|j	t|j
d	��dgd
z�|j	t|j
d��dg�|j	t|j
d��dgdz�|j	t|j
d
��gd��|j	t|j
d��gd��|j	t|j
d��gd��|j	t|j
d��gd��|j	t|j
d��gd��|j	t|j
d��dg�|j	t|j
d��dg�|j	t|j
d��dgdz�|j	t|j
d��dgdz�|j	t|j
d��dgdz�|j	t|j
d��dg�|j	t|j
d��dgdz�|j	t|j
d��dgdz�|j	t|j
d��dg�|j	t|j
d��dg�|j	t|j
d��d g�|j	t|j
d!��g�|j	t|j
d"��g�|j	t|j
d#��dgdz�|j	|j
d$�|j
d��|j	t|j
d%��d g�|j	t|j
d&��d g�|j	t|j
d'��d g�|j	t|j
d(��d g�|j	t|j
d)��d g�|j	t|j
d*��g�|j	t|j
d+��g�|j	t|j
d,��g�|j	t|j
d-��g�|j	t|j
d.��g�|j	t|j
d/��dg�|j	t|j
d0��dg�|j	t|j
d1��dg�|j	t|j
d2��dg�|j	t|j
d3��dg�|j	t|j
d4��g�|j	t|j
d5��g�|j	t|j
d6��dgdz�|j	t|j
d7��dgdz�|j	t|j
d8��dgdz�|j	t|j
d9��dgdz�|j	t|j
d:��dgdz�|j	t|j
d;��dgd
z�|j	t|j
d<��dgd
z�|d|d=<|j	t|j
d(��d d g�|j	t|j
d3��ddg�y)>Nr�rdr3rdr�ztog/foor�r~z.//tagr�r�zsection//tagz	section/*)rdr��nextsectionz
section//*)rdr�r�rdzsection/.//*z*/*z*//*z*/tagz*/./tagr�z././tagz.//tag[@class]r�z.//tag[@class="a"]z.//tag[@class!="a"]z.//tag[@class="b"]z.//tag[@class!="b"]z.//tag[@id]z.//section[tag]r_z.//section[element]z../tagzsection/../tagz	section//z.//section[tag='subtext']z.//section[tag ='subtext']z.//section[tag= 'subtext']z.//section[tag = 'subtext']z.//section[ tag = 'subtext' ]z.//section[tag!='subtext']z.//section[tag !='subtext']z.//section[tag!= 'subtext']z.//section[tag != 'subtext']z.//section[ tag != 'subtext' ]z.//tag[.='subtext']z.//tag[. ='subtext']z.//tag[.= "subtext"]z.//tag[ . = "subtext" ]z.//tag[. = 'subtext']z.//tag[. = 'subtext ']z.//tag[.= ' subtext']z.//tag[.!='subtext']z.//tag[. !='subtext']z.//tag[.!= "subtext"]z.//tag[ . != "subtext" ]z.//tag[. != 'subtext']z.//tag[. != 'subtext ']z.//tag[.!= ' subtext']r�)rr�r�r�r�rfr�r9s  r�test_findallzElementFindTest.test_findalls����F�F�:����v�v�n�%��!�������	�	�#��7�&��B������	�	�%�(8�9�E�5�>�J������	�	�%�(8�9�2�>������	�	�)�(<�=�r�B������	�	�#��7�%�	'������	�	�(�(;�<�
�G�a�K�	������	�	�-�(@�A�E�7�K������	�	�.�(A�B�U�G�a�K�P������	�	�+�(>�?�-�	/������	�	�,�(?�@�4�	6������	�	�.�(A�B�4�	6������	�	�%�(8�9�-�	/������	�	�&�(9�:�4�	6������	�	�'�(:�;�e�W�E������	�	�)�(<�=��w�G������	�	�'�(:�;�e�W�q�[�I������	�	�)�(<�=��w��{�K������	�	�2B�(C�D�
�G�a�K�	������	�	�2F�(G�H�
�G�	������	�	�2G�(H�I�
�G�a�K�	������	�	�2F�(G�H�
�G�a�K�	������	�	�2G�(H�I�
�G�	������	�	�-�(@�A�
�G�	������	�	�2C�(D�E�
�K�	������	�	�2G�(H�I�2�N������	�	�(�(;�<�b�A������	�	�2B�(C�D�
�G�a�K�	�������;�/����<�1H�I������	�	�2M�(N�O�
�K�	������	�	�2N�(O�P�
�K�	������	�	�2N�(O�P�
�K�	������	�	�2O�(P�Q�
�K�	������	�	�2Q�(R�S�
�K�	�
	
�����	�	�2N�(O�P��	������	�	�2O�(P�Q��	������	�	�2O�(P�Q��	������	�	�2P�(Q�R��	������	�	�2R�(S�T��	�	
�����	�	�2G�(H�I���	"������	�	�2H�(I�J���	"������	�	�2H�(I�J���	"������	�	�2K�(L�M���	"������	�	�2I�(J�K���	"������	�	�2J�(K�L��	������	�	�2I�(J�K��	�
	
�����	�	�2H�(I�J���1��	&������	�	�2I�(J�K���1��	&������	�	�2I�(J�K���1��	&������	�	�2L�(M�N���1��	&������	�	�2J�(K�L���1��	&�	
�����	�	�2K�(L�M���1��	&������	�	�2J�(K�L���1��	&���t��!�������	�	�2O�(P�Q�#�Y�/�	1������	�	�2I�(J�K����	)rc�B�tjt�}|jt	|jd��g�|jt	|jd��dgdz�|jt	|jd��dgdz�y)Nrdz{http://effbot.org/ns}tagr�z.//{http://effbot.org/ns}tagr�)rr�rDr�rfr�r9s  r�test_test_find_with_nsz&ElementFindTest.test_test_find_with_ns�s����F�F�=�!�������	�	�%�(8�9�2�>�����1�9�9�%@�A�B�
(�)�A�-�	/�	
����1�9�9�%C�D�E�
(�)�A�-�	/rc�X�tjd�}ddi}|jt|j	d|���d�|jt|j	d|���d�ddi}|jt|j	d|���d	�|jt|j	d|���d�ddd
�}|jt|j	d|���d�|jt|j	d|���d	�y)N��
            <a xmlns:x="X" xmlns:y="Y">
                <x:b><c/></x:b>
                <b/>
                <c><x:b/><b/></c><y:b/>
            </a>�xxrz.//xx:b)rRr��.//brr�)r�rR)rr�r�r�r�)rFrA�nsmaps   r�test_findall_different_nsmapsz-ElementFindTest.test_findall_different_nsmaps�s����v�v�����s�������T�\�\�)��\�F�G��K�����T�\�\�&�U�\�C�D�a�H��s�������T�\�\�)��\�F�G��K�����T�\�\�&�U�\�C�D�a�H���$������T�\�\�)��\�F�G��K�����T�\�\�&�U�\�C�D�a�Hrc�~�tjd�}|jtjd��|j	t|j
d��gd��|j	t|j
d��dg�|j	t|j
d��dg�|j	t|j
d	��d
g�|j	t|j
d��ddg�|j	t|j
d
��dg�|j	t|j
d
��t|j
d���|j	t|j
d��gd��|j	t|j
d�|dgz�t|j
d���|j	t|j
d��gd��|j	t|j
d��ddg�|j	t|j
d��ddg�|j	t|j
d��d
g�|j	t|j
d��gd��|j	t|j
d��ddg�|j	t|j
d��t|j
d���y)Nr�r/z{*}b)�{X}br��{Y}bz{*}cr�z{X}*r�z{Y}*r�rmr�z{}bro)r�r�r�r�r�r�z.//{*}b)r�r�r�r�r�z.//{*}cz.//{X}*z.//{Y}*z.//{}*)r�r�r�r�z.//{}br�)rr�r�rrr�rfr�r�s  r�test_findall_wildcardz%ElementFindTest.test_findall_wildcard�s����v�v����	
���B�J�J�v�&�'��������V�(<�=�.�	0��������V�(<�=���	 ��������V�(<�=� ��	#��������V�(<�=� ��	#��������U�(;�<��s��	%��������U�(;�<���	 ��������U�(;�<�'����S�(9�:�	<��������V�(<�=�3�	5�	
�������V�(<��R��z�(I�J�'����S�(9�:�	<�	
�������Y�(?�@�;�	=��������Y�(?�@��s��	%��������Y�(?�@� �&�)�	+��������Y�(?�@� ��	#��������X�(>�?�-�	/��������X�(>�?��s��	%��������X�(>�?�'����V�(<�=�	?rc��tjt�}|jtd�5|jd�ddd�y#1swYyxYw)Nzcannot use absolute pathz/tag)rr�r�r�r�r�r9s  r�
test_bad_findzElementFindTest.test_bad_find�s:���F�F�:���
�
#�
#�K�1K�
L�
�I�I�f��M�
L�
L�s�A�Ac�|�tjt�}|jtj	|�jd�jd�|jtj	|�jd�d�|jttj	|�jd��dgdz�d}|jt|�5tj	|�jd�}ddd�|jt�dgdz�y#1swY�)xYw)Nrdr�r�z�This search is broken in 1.3 and earlier, and will be fixed in a future version.  If you rely on the current behaviour, change it to '.+'z//tagr�)rr�r�r�r@r�rdr�rfr��assertWarnsRegex�
FutureWarning)rFr�r�r�s    r�test_find_through_ElementTreez-ElementFindTest.test_find_through_ElementTree�s����F�F�:����������*�/�/��6�:�:�E�B��������*�3�3�E�:�F�C��������q�(9�(A�(A�%�(H�I�
�G�a�K�	�#���
"�
"�=�#�
6�����"�*�*�7�3�B�7������+�e�W�q�[�9�7�
6�s�%%D2�2D;N)rPrQrRr�r�r�r�r�rrrrrrr�r��s0��O�.P�,n)�`/�I�"*?�X�
:rr�c�2�eZdZdd�Zd�Zd�Zd�Zd�Zd�Zy)	�ElementIterTestNc�6�t|j|��Sr)rfr�)rFr\rds   r�_ilistzElementIterTest._ilist�s���d�i�i��n�-�-rc��tjd�}|j|j|�gd��|j|j|j	d��ddg�|jt|j
��jd�|jdj|j��d�|jdj|j	d�j��d�|jt|j��d	�t|d
��}|jttj|��dd
�t|d
��}tjtj���}|jttj||���dd
�tjd�}|jt |j�tjd�}|jdj|j��d�y)Nz7<html><body>this is a <i>paragraph</i>.</body>..</html>)r8r3r�r3r�r8rRzthis is a paragraph...zthis is a paragraph.z
this is a F)r]rr>r )r-z*<root>a&amp;<sub>b&amp;</sub>c&amp;</root>za&b&c&)rr�r�r
r�rar�rdr5r�rar`r&r*r@r�r�)rFr\�
sourcefiler-r`s     r�
test_basiczElementIterTest.test_basic�s����f�f�N�O��������S�)�+@�A�������S�X�X�f�%5�6���
�F�����c�h�h�j�)�-�-�v�6�����������0�2J�K����������&�!1�!:�!:�!<�=�"�	$�����c�l�l�n�-�|�<��s�e�4�
�����b�l�l�:�6�7��:�E�B��s�e�4�
����R�^�^�%5��6������b�l�l�:�f�l�E�F�q�I��	 ��~�~�d�#�����.�$�)�)�4��f�f�A�B������������0�(�;rc�$�tjd�}|j|j|�dg�tj	|d�}|j|j|�ddg�tj	|d�}|j|j|�gd��tj	|d�}|j|j|�gd��|d|d<|d=|j|j|�ddg�y)	Nr�r�r�)r�r�r�r�)r�r�r�r�r�r)rr�r�r
rqrts     r�test_cornerszElementIterTest.test_corners�s����J�J�s�O��������Q��#��/�
�M�M�!�S�!��������Q��#�s��4�
�M�M�!�S�!��������Q���9�
�M�M�!�S�!��������Q��)=�>���t��!��
�a�D�������Q��#�s��4rc��tjd�}|j|j|d�dgdz�|j|j|d�dgdz�|jt	|jd���dgdz�gd�}|jt	|j��|�|j|j|�|�|j|j|d�|�y)	NaJ
            <document>
                <house>
                    <room>bedroom1</room>
                    <room>bedroom2</room>
                </house>
                <shed>nothing here
                </shed>
                <house>
                    <room>bedroom8</room>
                </house>
            </document>�roomr��houser�rc)r]rrr�shedrrr�)rr�r�r
rfr�)rFr\�all_tagss   r�test_iter_by_tagz ElementIterTest.test_iter_by_tag
s����f�f����	
������S�&�1�F�8�a�<�@�������S�'�2�W�I��M�B�	
����3�8�8��8�/�0�
�H�q�L�	�
-���������
�3�X�>�������S�)�8�4�������S�#�.��9rc���tjd�}|j�}|jt�5tj
|�ddd�y#1swYyxYw)Nr�)rr�r�r�r8r)rFr�r�s   rrzElementIterTest.test_copy0
s?���J�J�s�O��
�V�V�X��
�
�
�y�
)��I�I�b�M�*�
)�
)�s�A�A#c�0�tjd�}|j�}ttj
dz�D]F}|j
ttjf�5t	j||�ddd��Hy#1swY�SxYw)Nr�r�)
rr�r�r�rqr�r�r8rtrr)rFr�r�r|s    rr�zElementIterTest.test_pickle6
sk���J�J�s�O��
�V�V�X���6�2�2�Q�6�7�E��"�"�I�v�/C�/C�#D�E����R��'�F�E�8�E�E�s�*B�B	r)	rPrQrRr
r
rrrr�rrrrr�s ��.�<�65�,:�:�(rrc�n�eZdZdZdZd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zy)�TreeBuilderTestz�<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html>text<div>subtext</div>tail</html>z<toplevel>sometext</toplevel>c��|j|jd�|j|jd�|j|jd�|j|ji�t|�}|jt
|�d�|d}|j|jd�|j|jd�|j|jd�|j|ji�y)Nr8r�r�r�divror�)r�rdr�r�r�r�r�)rFr��childrenr�s    r�_check_sample1_elementz&TreeBuilderTest._check_sample1_elementF
s����������'��������(��������&�������2�&���7������X���*�����������E�*�������Y�/�������V�,�������r�*rc�6�Gd�d�}Gd�d|�}tj|���}|j|j�|j	|j�d�tj|���}|j|j�|j	|j�d�tjt
���}|j|j�|j|j��y)Nc��eZdZd�Zy)�<TreeBuilderTest.test_dummy_builder.<locals>.BaseDummyBuilderc��y)Nr�rr�s rr)zBTreeBuilderTest.test_dummy_builder.<locals>.BaseDummyBuilder.closeU
s��rNrhrrr�BaseDummyBuilderr T
s��
rr"c��eZdZd�xZxZZy)�8TreeBuilderTest.test_dummy_builder.<locals>.DummyBuilderc��yrr)r�s rr3zATreeBuilderTest.test_dummy_builder.<locals>.DummyBuilder.<lambda>Y
s��DrN)rPrQrRr;rKr>rrr�DummyBuilderr$X
s��!0�0�D�0�5�3rr&r r�)rr&r(�sample1r�r)r#r�)rFr"r&r-s    r�test_dummy_builderz"TreeBuilderTest.test_dummy_builderS
s���	�	�	1�+�	1����\�^��4�����D�L�L�!���������,����%5�%7��8�����D�L�L�!���������,����V�X��.�����D�L�L�!����&�,�,�.�)rc��tj�}|j|jd�jtj
�|j|jd�jd�tjtj
��}|j|jd�jtj
�|j|jd�jd�tjt��}|j|jd�td��y)N�ctext)�comment_factory)rr*r�rprdrrr�r��rFr�s  r�test_treebuilder_commentz(TreeBuilderTest.test_treebuilder_commentg
s����N�N���������7�+�/�/����<�������7�+�0�0�'�:��N�N�2�:�:�N�6��������7�+�/�/����<�������7�+�0�0�'�:��N�N�3�N�/��������7�+�S��\�:rc��tj�}|j|jdd�jtj
�|j|jdd�jd�tjtj
��}|j|jd�jtj
�|j|jd�jd�|j|jdd�jtj
�|j|jdd�jd�tjd���}|j|jd�td�df�|j|jdd�td�df�y)Nr!)�
pi_factoryr�z text zpitarget  text c��t|�|fSr)r�)r!r�s  rr3z5TreeBuilderTest.test_treebuilder_pi.<locals>.<lambda>~
s
��C��K��;Nr)rr*r�r�rdr�r�r�r,s  r�test_treebuilder_piz#TreeBuilderTest.test_treebuilder_pis
sE���N�N���������h��-�1�1�2�5�5�9�������h��-�2�2�H�=��N�N�b�e�e�N�,��������h��+�+�R�U�U�3�������h��,�,�h�7�������j�(�3�7�7����?�������j�(�3�8�8�:K�L��N�N�&N�N�O��������h��#�h�-��)>�?�������j�(�3�c�*�o�x�5P�Qrc�f�Gd�dtj�}d}tj|�}|j|jd�tj|���}|j
|�|j�}|j|jd�d}tj|�}|j|jd�d}tj|���}|j
|�|j�}|j|jd�y)Nc��eZdZy)�;TreeBuilderTest.test_late_tail.<locals>.TreeBuilderSubclassNr�rrr�TreeBuilderSubclassr4�
r�rr5z<a>text<!-- comment -->tail</a>�texttailr z<a>text<?pi data?>tail</a>)rr*r�r�r�r&r(r))rFr5r�r�r-s     r�test_late_tailzTreeBuilderTest.test_late_tail�
s���	�"�.�.�	�0���M�M�#����������,����%8�%:��;�����C���L�L�N���������,�*���M�M�#����������,�*�����%8�%:��;�����C���L�L�N���������,rc�2�Gd�dtj�}d}tjtjd����}|j|�|j	�}|j|djd�|j|djd	�|j|jd
�tj|d����}|j|�|j	�}|j|djd�|j|djd	�|j|jd
�d}tjtjd����}|j|�|j	�}|j|djd
�|j|djd�|j|jd�tj|d����}|j|�|j	�}|j|djd
�|j|djd�|j|jd�y)Nc��eZdZy)�KTreeBuilderTest.test_late_tail_mix_pi_comments.<locals>.TreeBuilderSubclassNr�rrrr5r:�
r�rr5z/<a>text<?pi1?> <!-- comment -->
<?pi2?>tail</a>T)�insert_commentsr rr�z
tailztext z+<a>text<!-- comment -->
<?pi data?>tail</a>)�
insert_piszpi datar�ztext
)rr*r&r(r)r�r�r�)rFr5r�r-r�s     r�test_late_tail_mix_pi_commentsz.TreeBuilderTest.test_late_tail_mix_pi_comments�
s���	�"�.�.�	�A�����R�^�^�D�^�%I��J�����C���L�L�N������1����K�0�����1����H�-��������)����%8��%N��O�����C���L�L�N������1����K�0�����1����H�-��������)�<�����R�^�^�t�^�%D��E�����C���L�L�N������1����I�.�����1����F�+��������*����%8�D�%I��J�����C���L�L�N������1����I�.�����1����F�+��������*rc���tjtjd����}|j|j�|j�}|j
|�y�Nr�r )rr&r*r(r'r)r�rFr-r�s   r�$test_treebuilder_elementfactory_nonez4TreeBuilderTest.test_treebuilder_elementfactory_none�
sF�����R�^�^�D�^�%I��J�����D�L�L�!��L�L�N���#�#�A�&rc�*�Gd�dtj�}|�}|j|jd�d�tj	|��}|j|j�|j�}|j|�y)Nc��eZdZd�Zy)�4TreeBuilderTest.test_subclass.<locals>.MyTreeBuilderc��|dzS�Nr�rrOs  rr�z;TreeBuilderTest.test_subclass.<locals>.MyTreeBuilder.foobar�
����1�u�rN�rPrQrRr�rrr�
MyTreeBuilderrD�
���
rrIr�r�r )	rr*r�r�r&r(r'r)r�rFrI�tbr-r�s     r�
test_subclasszTreeBuilderTest.test_subclass�
sl��	�B�N�N�	��_��������2���+����R��(�����D�L�L�!��L�L�N���#�#�A�&rc��Gd�dtj�}|tjtj��}|j	|jd�d�tj
|��}|j|j�|jd�|j�}|j|�y)Nc��eZdZd�Zy)�?TreeBuilderTest.test_subclass_comment_pi.<locals>.MyTreeBuilderc��|dzSrFrrOs  rr�zFTreeBuilderTest.test_subclass_comment_pi.<locals>.MyTreeBuilder.foobar�
rGrNrHrrrrIrP�
rJrrI)r+r/r�r�r z<!-- a comment--><?and a pi?>)rr*rrr�r�r�r&r(r'r)rrKs     r�test_subclass_comment_piz(TreeBuilderTest.test_subclass_comment_pi�
s���	�B�N�N�	��2�:�:�"�%�%�
H��������2���+����R��(�����D�L�L�!����3�4��L�L�N���#�#�A�&rc����g��fd�}tj|��}tj|��}|j|j�|j�|j
�dg�y)Nc�R���j|�tj||�Sr)r�rr�)rdr��lsts  �r�	myfactoryz7TreeBuilderTest.test_element_factory.<locals>.myfactory�
s����J�J�s�O��:�:�c�6�*�*rr�r �toplevel)rr*r&r(�sample2r)r�)rFrVrLr-rUs    @r�test_element_factoryz$TreeBuilderTest.test_element_factory�
sZ�����	+�
�^�^�I�^�
6�����R��(�����D�L�L�!���������z�l�+rc��tj|��}tj|��}|j|j�|j�}|j
||�|j|�yr?)rr*r&r(r'r)r�r)rFr$rLr-r�s     r�_check_element_factory_classz,TreeBuilderTest._check_element_factory_class�
s[��
�^�^�C�^�
0�����R��(�����D�L�L�!��L�L�N�����a��%��#�#�A�&rc�X�Gd�dtj�}|j|�y)Nc��eZdZy)�@TreeBuilderTest.test_element_factory_subclass.<locals>.MyElementNr�rrrr�r^�
r�rr�)rr�r[)rFr�s  r�test_element_factory_subclassz-TreeBuilderTest.test_element_factory_subclass�
s ��	��
�
�	��)�)�)�4rc��tj}|j|jd�Gd�d|t�}|j|�y)NrIc��eZdZy)�LTreeBuilderTest.test_element_factory_pure_python_subclass.<locals>.MyElementNr�rrrr�rbr�rr�)r�_Element_Pyr�rQr�r[)rF�baser�s   r�)test_element_factory_pure_python_subclassz9TreeBuilderTest.test_element_factory_pure_python_subclass�
s>���~�~��������*A�B�	��j�	��)�)�)�4rc���Gd�d�}tj|���}|j|j�|j	|j�d�y)Nc��eZdZdZd�Zd�Zy)�3TreeBuilderTest.test_doctype.<locals>.DoctypeParserNc��|||f|_yr��_doctype)rFry�pubid�systems    r�doctypez;TreeBuilderTest.test_doctype.<locals>.DoctypeParser.doctypes��!%�u�f� 5��
rc��|jSrrjr�s rr)z9TreeBuilderTest.test_doctype.<locals>.DoctypeParser.closes���}�}�$r)rPrQrRrkrnr)rrr�
DoctypeParserrhs���H�
6�
%rrpr �r8z&-//W3C//DTD XHTML 1.0 Transitional//ENz7http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd)rr&r(r'r�r))rFrpr-s   r�test_doctypezTreeBuilderTest.test_doctype
sM��	%�	%����]�_��5�����D�L�L�!��������
H�	Irc���Gd�d�}tj|���dD]=}|jt|�5tj||���ddd��?tj|t����dD]^}tj||t����}|j|j�|j|j���`y#1swY��xYw)Nc��eZdZdefd�Zd�Zy)�BTreeBuilderTest.test_builder_lookup_errors.<locals>.RaisingBuilderNc� �||_||_yr��raise_in�what)rFrxrys   rr�zKTreeBuilderTest.test_builder_lookup_errors.<locals>.RaisingBuilder.__init__s�� (��
� ��	rc�`�||jk(r|j|j��d�}|S)Nc��yrr)r,s r�handlez^TreeBuilderTest.test_builder_lookup_errors.<locals>.RaisingBuilder.__getattr__.<locals>.handle$s��rrw)rFryr|s   r�__getattr__zNTreeBuilderTest.test_builder_lookup_errors.<locals>.RaisingBuilder.__getattr__!s+���4�=�=�(��)�)�D�M�M�2�2���
r)rPrQrRr�r�r}rrr�RaisingBuilderrus��(,�:�
!�
rr~r )rKr;r>rpr�)ry)	rr&r�r�r�r(r'r�r))rFr~r�r-s    r�test_builder_lookup_errorsz*TreeBuilderTest.test_builder_lookup_errorss���
	�
	�	���N�,��-�>�E��'�'�
�E�:����N�5�$9��:�;�:�?�	���N��?��@�>�E��\�\���N�)S�\�T�F��K�K����%����f�l�l�n�-�?�	;�:�s�C-�-C6	N)rPrQrRr'rXrr(r-r1r7r=rArMrRrYr[r_rerrrrrrrr>
s^��2�G�
2�G�+�*�(
;�
R�-�0"+�H'�'�
'�,�'�5�
5�I�".rrc�B�eZdZdZdZdZd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zy)�
XMLParserTests<file><line>22</line></file>s�<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html>text</html>uX<?xml version="1.0" encoding="iso-8859-1"?>
<money value="$£€𐅻">$£€𐅻</money>c��|j|jd�|j|djd�|j|djd�y)Nr_r�line�22)r�rdr�r9s  r�_check_sample_elementz#XMLParserTest._check_sample_element>sF���������'�����1����6�*�����1����D�)rc���tjdtj���}|j|j�|j|j
��y)Nr)rUr!)rr&r*r(r'r�r))rFr�s  r�test_constructor_argsz#XMLParserTest.test_constructor_argsCsE���,�,��&(�n�n�&6��8�����T�\�\�"��"�"�7�=�=�?�3rc��Gd�dtj�}|�}|j|j�|j	|j��y)Nc��eZdZy)�-XMLParserTest.test_subclass.<locals>.MyParserNr�rrr�MyParserr�Jr�rr�)rr&r(r'r�r))rFr�r-s   rrMzXMLParserTest.test_subclassIs=��	�r�|�|�	�������D�L�L�!��"�"�6�<�<�>�2rc��tj�5tjdt�tj�}|j
|j�|j�ddd�y#1swYyxYw)N�error)	�warnings�catch_warnings�simplefilter�DeprecationWarningrr&r(rXr)r�s  r�test_doctype_warningz"XMLParserTest.test_doctype_warningPsO��
�
$�
$�
&��!�!�'�+=�>��\�\�^�F��K�K����%��L�L�N�	'�
&�
&�s�AA8�8Bc����d�G�fd�dtj�}|�}|jtd�5|j	|j
�ddd�|j
�|j��dx��tj�5tjdt�tjdt�G�fd�d�}||���}|j	|j
�|j
�|j��|j�d�ddd�y#1swY��xYw#1swYyxYw)	Nc���eZdZ�fd�Zy)�@XMLParserTest.test_subclass_doctype.<locals>.MyParserWithDoctypec���||f�yrr)rFr,r-rks   �rrnzHXMLParserTest.test_subclass_doctype.<locals>.MyParserWithDoctype.doctypeZs��� �&�>�rN�rPrQrRrnrjs�r�MyParserWithDoctyper�Ys���
*rr�rnr�c���eZdZ�fd�Zy)�:XMLParserTest.test_subclass_doctype.<locals>.DoctypeParserc���|||f�yrr)rFryrlrm�	_doctype2s    �rrnzBXMLParserTest.test_subclass_doctype.<locals>.DoctypeParser.doctypeis���!%�u�f� 5�IrNr�)r�s�rrpr�hs���6rrpr rq)
rr&r�RuntimeWarningr(rXr)r�r�r�r�r�r�)rFr�r-rprkr�s    @@r�test_subclass_doctypez#XMLParserTest.test_subclass_doctypeWs�����	*�"�,�,�	*�
%�&��
�
"�
"�>�9�
=��K�K����%�>��������(�#�#�#��9�
�
$�
$�
&��!�!�'�+=�>��!�!�'�>�:�
6�
6�
)�
��@�F��K�K����%��L�L�N����h�'����Y�L�
M�'�
&�
>�
=��'�
&�s�E�BE�E	�Ec�V�	tj�5tjdt�tjdt�Gd�dt
j�}|�}|j|j�|j�ddd�y#1swYyxYw)Nr�c��eZdZy)�DXMLParserTest.test_inherited_doctype.<locals>.MyParserWithoutDoctypeNr�rrr�MyParserWithoutDoctyper�zs��rr�)
r�r�r�r�r�rr&r(rXr))rFr�r-s   r�test_inherited_doctypez$XMLParserTest.test_inherited_doctypeuso��H�
�
$�
$�
&��!�!�'�+=�>��!�!�'�>�:�
����
�+�-�F��K�K����%��L�L�N�'�
&�
&�s�BB�B(c�X�tjtj���}|j|j�|j�}|j
|jd�|j
|jdd�|j
|jd�y)Nr �moneyr�u
$£€𐅻)
rr&r*r(�sample3r)r�rdr�r�r@s   r�test_parse_stringzXMLParserTest.test_parse_string�sw�����R�^�^�%5��6�����D�L�L�!��L�L�N���������(�������'�*�,C�D�������!8�9rN)
rPrQrRr'rXr�r�r�rMr�r�r�r�rrrr�r�5s:��-�G��G�M�G�*�
4�3��M�<	�:rr�c��eZdZd�Zy)�NamespaceParseTestc�B�ddd�}tjt�}|jt	|jd|��d�|jt	|jd|��d�|jt	|jd|��d�y)	N�hellor)�hr,z{hello}tabler�z.//{hello}tdr�z.//{foo}name)rr��SAMPLE_XML_NS_ELEMSr�r�r�)rFr�r\s   r�test_find_with_namespacez+NamespaceParseTest.test_find_with_namespace�s{���E�*���m�m�/�0������S�[�[���?�@�!�D�����S�[�[���?�@�!�D�����S�[�[���?�@�!�DrN)rPrQrRr�rrrr�r��s��Err�c�Z�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zy)�ElementSlicingTestc�@�|D�cgc]}|j��c}Scc}wrrc)rF�elemlistr�s   r�
_elem_tagszElementSlicingTest._elem_tags�s��'�(�x�!����x�(�(��(rgc�6�|jt|��Sr)r�r�rss  r�
_subelem_tagsz ElementSlicingTest._subelem_tags�s�����t�D�z�*�*rc��	tjd�}t|�D]}tj|d|z��|S)Nr�za%s)rr�r�rq)rF�numchildrenr�r�s    r�_make_elem_with_childrenz+ElementSlicingTest._make_elem_with_children�s<��	�
�J�J�s�O���{�#�A��M�M�!�U�Q�Y�'�$��rc���|jd��|j�djd�|j�djd�|jt�fd��|jt�fd��y)Nr�r��a1����a8c����dS)N�rr�s�rr3z?ElementSlicingTest.test_getslice_single_index.<locals>.<lambda>�s	���a��erc����dS)Ni�rr�s�rr3z?ElementSlicingTest.test_getslice_single_index.<locals>.<lambda>�s	���a��fr)r�r�rdr��
IndexErrorr9s @r�test_getslice_single_indexz-ElementSlicingTest.test_getslice_single_index�sc����)�)�"�-������1����4�(�����2����D�)����*�m�4����*�n�5rc���|jd�}|j|j|dd�gd��|j|j|dd�gd��|j|j|dd�gd��|j|j|dd�ddg�|j|j|dd�ddg�|j|j|dd	�d
dg�y)Nr�r�)�a3�a4�a5�r�r�r�r�r��a0r�)r�r�r�r9s  r�test_getslice_rangez&ElementSlicingTest.test_getslice_range�s����)�)�!�,���������1�2��/�1C�D��������1�Q��0�2D�E��������1�R��1�3E�F��������1�Q��0�4��,�?��������1�R��1�D�$�<�@��������2�A��/�$���>rc	�L�|jd�}|j|j|ddd��ddg�|j|j|ddd��gd��|j|j|ddd��ddg�|j|j|ddd��d	dg�|j|j|ddtj��d
g�|j|j|ddtjdz��d
g�y)Nr��r�r��a9r�)r�r��a6r�r�r�r��@�r�r�r�rp�maxsizer9s  r�test_getslice_stepsz&ElementSlicingTest.test_getslice_steps�s���)�)�"�-���������1�R��6��3�d�D�\�B��������3�Q�3��0�2J�K��������3�Q�3��0�4��,�?��������1�4�a�4��1�D�$�<�@��������1�>�c�k�k�>�):�;�d�V�D��������1�+=�c�k�k�2�o�+=�)>�?�$��Hrc	� �|jd�}|j|j|ddd��gd��|j|j|ddd��ddg�|j|j|ddtj��dg�|j|j|ddtjdz
��dg�|j|j|ddtjd	z��dg�y)
Nr�r�)r��a2r�r�r�r�r�r�r�r�r�r9s  r�test_getslice_negative_stepsz/ElementSlicingTest.test_getslice_negative_steps�s����)�)�!�,���������4�R�4��1�3K�L��������4�R�4��1�D�$�<�@��������1�?�s�{�{�l�?�);�<�t�f�E��������1�+<�s�{�{�l�1�n�+<�)=�>���G��������1�+>�s�{�{�l�B�.>�+>�)?�@�4�&�Irc��|jd�}|dd�=|j|j|�ddg�|jd�}|dd�=|j|j|�g�|jd�}|ddd�=|j|j|�g�|jd�}|ddd�=|j|j|�ddg�|jd�}|d	dd�=|j|j|�ddg�|jd�}|ddd�=|j|j|�d
g�y)Nr�rr�r�r�r�r�r�r�r�)r�r�r�r9s  r�
test_delslicez ElementSlicingTest.test_delslice�sT���)�)�!�,��
�a��c�F�����+�+�A�.��t��=��)�)�!�,��
�a�b�E�����+�+�A�.��3��)�)�!�,��
�d��d�G�����+�+�A�.��3��)�)�!�,��
�d��d�G�����+�+�A�.��t��=��)�)�!�,��
�a�d��d�G�����+�+�A�.��t��=��)�)�!�,��
�c��c�F�����+�+�A�.���7rc�`�|jd�}tjd�|d<|j|j	|�gd��tjd�|d<|j|j	|�gd��|jt�5tjd�|d	<ddd�|jt�5tjd�|d
<ddd�|j|j	|�gd��y#1swY�cxYw#1swY�9xYw)Nr�r�r��r�r�r�r�r�r�)r�r�r�r�r�r����)r�rr�r�r�r�r�r9s  r�test_setslice_single_indexz-ElementSlicingTest.test_setslice_single_index�s����)�)�!�,���z�z�#���!������+�+�A�.�0G�H��
�
�3���"������+�+�A�.�0F�G�
�
�
�z�
*��:�:�c�?�A�a�D�+�
�
�
�z�
*��J�J�s�O�A�b�E�+�����+�+�A�.�0F�G�	+�
*��
*�
*�s�D�D$�D!�$D-c�J�|jd�}td�D�cgc]}tjd|z���c}|dd|j	|j|�gd��|jd�}tjd�g|dd|j	|j|�gd��|jd�}td�D�cgc]}tjd|z���c}|dd|j	|j|�gd	��ycc}wcc}w)
Nr�r��b%sr�r�)r��b0�b1r�r�)r�r�r�)r�r�r��b2r�)r�r�rr�r�r��rFr�r�s   r�test_setslice_rangez&ElementSlicingTest.test_setslice_range�s����)�)�!�,��16�q��:��A�"�*�*�U�Q�Y�'��:��!�A������+�+�A�.�0H�I��)�)�!�,���*�*�S�/�"��!�A������+�+�A�.�0A�B��)�)�!�,��16�q��:��A�"�*�*�U�Q�Y�'��:��!�A������+�+�A�.�0N�O��;��;s�D�D c�`�|jd�}td�D�cgc]}tjd|z���c}|ddd�<|j	|j|�gd��|jd�}|j
t�5tjd�g|ddd�<ddd�|j
t�5td�D�cgc]}tjd|z���c}|ddd�<ddd�|j
t�5g|ddd�<ddd�|j	|j|�gd	��|jd
�}tjd�g|ddtj�<|j	|j|�gd��tjd�g|ddtjd
z�<|j	|j|�gd��ycc}w#1swY��ZxYwcc}w#1swY��xYw#1swY��xYw)Nr�r�r�r�r�)r�r�r�r�r�r�r�r�)r�r�r�r�r�r�r�r�r�r��r�r�r�r��
r�r�rr�r�r�r�r�rpr�r�s   r�test_setslice_stepsz&ElementSlicingTest.test_setslice_steps�s����)�)�!�,��38��8�<�8�a�B�J�J�u�q�y�)�8�<��!�A�a�%������+�+�A�.�0T�U��)�)�!�,��
�
�
�z�
*��
�
�3��(�A�a��!�e�H�+�
�
�
�z�
*�7<�Q�x�@�x�!��
�
�5�1�9�-�x�@�A�a��!�e�H�+�
�
�
�z�
*��A�a��!�e�H�+�����+�+�A�.�0T�U��)�)�!�,���Z�Z��_�-��!�.�S�[�[�.������+�+�A�.�0G�H�!#���C�� 1��!�
�S�[�[�"�_�
������+�+�A�.�0G�H��!=�+�
*��A�+�
*��
*�
*�s;�H�H�
H�H�7	H�	H$�H�H�H!�$H-c��|jd�}td�D�cgc]}tjd|z���c}|ddd�<|j	|j|�gd��|jd�}|j
t�5tjd�g|ddd�<ddd�|j
t�5td�D�cgc]}tjd|z���c}|ddd�<ddd�|j
t�5g|ddd�<ddd�|j	|j|�gd	��|jd�}tjd�g|d
dtj�<|j	|j|�gd��tjd�g|d
dtjd
z
�<|j	|j|�gd
��tjd�g|d
dtjdz�<|j	|j|�gd��ycc}w#1swY���xYwcc}w#1swY��lxYw#1swY��SxYw)Nr�r�r�rr�)r�r�r�r�r�r�)r�r�r�r�r�r�r�r�r�r�)r�r�r�r�r�r�s   r�test_setslice_negative_stepsz/ElementSlicingTest.test_setslice_negative_stepss���)�)�!�,��49�!�H�=�H�q�R�Z�Z���	�*�H�=��!�A�b�&�	�����+�+�A�.�0H�I��)�)�!�,��
�
�
�z�
*����C��)�A�a��"�f�I�+�
�
�
�z�
*�8=�a��A��1����E�A�I�.��A�A�a��"�f�I�+�
�
�
�z�
*��A�a��"�f�I�+�����+�+�A�.�0H�I��)�)�!�,�� �j�j��o�.��!�/�c�k�k�\�/������+�+�A�.�0G�H� "�
�
�3��0��!�
�c�k�k�\�!�^�
������+�+�A�.�0G�H�"$�*�*�S�/�!2��!�
�c�k�k�\�2�
�
������+�+�A�.�0G�H��%>�+�
*��B�+�
*��
*�
*�s;�I�I�
I*�I%�7	I*�	I7�I"�%I*�*I4�7Jc���tjd�}|jt�5d�t	d�D�|ddddd�|jt
�5d|ddddd�d��|j
t
d�5�fd�t	d�D�|ddddd�y#1swY�fxYw#1swY�OxYw#1swYyxYw)Nrdc3�&K�|]	}ddz���y�wr�rr�s  rr�zIElementSlicingTest.test_issue123213_setslice_exception.<locals>.<genexpr>,s����+�(�Q�Q�q�S�(�r�r�r�c��td��r�r�rrrr,zAElementSlicingTest.test_issue123213_setslice_exception.<locals>.f3r�rr�c3�,�K�|]}�����
y�wrrr�s  �rr�zIElementSlicingTest.test_issue123213_setslice_exception.<locals>.<genexpr>7s�����+�(�Q�Q�S�(�r�)rr�r�r�r�r8r�)rFr�r,s  @r�#test_issue123213_setslice_exceptionz6ElementSlicingTest.test_issue123213_setslice_exception(s�����J�J�u���
�
�
�0�
1�+�%��(�+�A�b�q�E�2��
�
�y�
)��A�b�q�E�*�	)��
#�
#�I�{�
;�+�%��(�+�A�b�q�E�<�
;�2�
1��*�
)��<�
;�s#�B'�B3�B?�'B0�3B<�?CN)rPrQrRr�r�r�r�r�r�r�r�r�r�r�r�r�rrrr�r��sI��)�+��6�?�I�J�8�2H�P�I�(I�,,rr�c��eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�ZGd
�d�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zy)�IOTestc	���tjd�}d|_|jt	|�d�dD]d}|j|�5|jt	||��d�|jt	||j
���d�ddd��fdD]�}|j|�5|jt	||��d|zj|��|j
�}|jt	||��d|zj|��ddd���tjd�}d	|_|jt	|�d
�|jt	|d��d�|jt	|d
��d�dD]1}|jt	||��d|zj|���3tjd�}d	|jd<|jt	|�d�|jt	|d��d�|jt	|d
��d�dD]1}|jt	||��d|zj|���3tjd�}d|_|jt	|�d�|jt	|d��d�|jt	|d
��d�dD]1}|jt	||��d|zj|���3tjd�}d|jd<|jt	|�d�|jt	|d��d�|jt	|d
��d�dD]1}|jt	||��d|zj|���3y#1swY���xYw#1swY��QxYw)Nrdr�z<tag>abc</tag>)rr�rs<tag>abc</tag>)r�r��utf-32z2<?xml version='1.0' encoding='%s'?>
<tag>abc</tag>z<&"'>z<tag>&lt;&amp;"'&gt;</tag>rs<tag>&lt;&amp;"'&gt;</tag>r�z><?xml version='1.0' encoding='%s'?>
<tag>&lt;&amp;"'&gt;</tag>r�z"<tag key="&lt;&amp;&quot;'&gt;" />s"<tag key="&lt;&amp;&quot;'&gt;" />zF<?xml version='1.0' encoding='%s'?>
<tag key="&lt;&amp;&quot;'&gt;" />uåöö<>u<tag>åöö&lt;&gt;</tag>s<tag>åöö&lt;&gt;</tag>s%<tag>&#229;&#246;&#246;&lt;&gt;</tag>u=<?xml version='1.0' encoding='%s'?>
<tag>åöö&lt;&gt;</tag>u<tag key="åöö&lt;&gt;" />s<tag key="åöö&lt;&gt;" />s(<tag key="&#229;&#246;&#246;&lt;&gt;" />)r�r�r�r�r�u@<?xml version='1.0' encoding='%s'?>
<tag key="åöö&lt;&gt;" />)	rr�r�r�rar��upperr:r�)rFr\�encr�s    rr5zIOTest.test_encoding:s����z�z�%� ����	�����4��*:�;�(�C����c�"�� � ��4�#�!>�)�+�� � ��4�#�)�)�+�!F�)�+�#�"�)�6�C����c�"�� � ��4�#�!>�*�,/�0�17����>��	�	���� � ��4�%�!@�*�,1�2�39�6�#�;�@�#�"�6��z�z�%� ����	�����4��*G�H�����4�'�:�.�	0�����4�*�=�.�	0�5�C����Y�t�c�:�3�58�9�:@�&��+�
G�6�
�z�z�%� ��&����E������4��*O�P�����4�'�:�6�	8�����4�*�=�6�	8�5�C����Y�t�c�:�<�>A�B�CI�6�#�;�
P�6�
�z�z�%� ��$��	�����4��*K�L�����4�'�:�>�	@�����4�*�=�8�	:�5�C����Y�t�c�:�1�36�7�8>��s��
E�6�
�z�z�%� ��-����E������4��*N�O�����4�'�:�A�	C�����4�*�=�;�	=�M�C����Y�t�c�:�6�8;�<�=C�V�C�[�
J�N�u#�"��#�"�s�A	O�7A/O*�O'	�*O4	c�P�|jtjt�tjtj
d��}|jt�ttd�5}|j|j�d�ddd�y#1swYyxYw)N�<site>ø</site>r[�<site>&#248;</site>)rfrrgrrr@r�rYr$r�r%�rFr`r,s   r�test_write_to_filenamezIOTest.test_write_to_filenamesi�����	�(�(�&�1��~�~�b�f�f�%<�=�>���
�
�6��
�&�$�
�1����Q�V�V�X�'A�B� �
�
�s�2!B�B%c��|jtjt�tjtj
d��}|jtd��ttd�5}|j|j�d�ddd�|jtd��ttd�5}|j|j�td��ddd�y#1swY�cxYw#1swYyxYw)Nr�rrr[�<site>ø</site>r��:<?xml version='1.0' encoding='ISO-8859-1'?>
<site>�</site>)rfrrgrrr@r�rYr$r�r%r<r�s   r�$test_write_to_filename_with_encodingz+IOTest.test_write_to_filename_with_encoding�s������	�(�(�&�1��~�~�b�f�f�%<�=�>���
�
�6�G�
�,�
�&�$�
�1����Q�V�V�X�'C�D� �	
�
�
�6�L�
�1�
�&�$�
�1����Q�V�V�X�{�6�(7�
8� �
�	 �
�� �
�s�4!C7�*D�7D�Dc���|jtjt�t	td�5}|j
}ddd�tjt�tjtjd��}|jtd��t	td�5}|j|j�d�ddd�y#1swY��xYw#1swYyxYw)Nr�r�rTrr[r�)rfrrgrr$rUrr@r�rYr�r%)rFr,rUr`s    r�!test_write_to_filename_as_unicodez(IOTest.test_write_to_filename_as_unicode�s������	�(�(�&�1�
�&�#�
�!��z�z�H������ ��~�~�b�f�f�%<�=�>���
�
�6�I�
�.�
�&�$�
�1����Q�V�V�X�'?�@� �
�
�
�� �
�s�
C�2!C(�C%�(C1c�>�|jtjt�tjtj
d��}ttdd��5}|j|d��|j|j�ddd�ttd�5}|j|j�d�ddd�ttddd	�
�5}|j|d��|j|j�ddd�ttd�5}|j|j�d�ddd�ttdd��5}|j|d��|j|j�ddd�ttd�5}|j|j�d
�ddd�y#1swY��IxYw#1swY��xYw#1swY��xYw#1swY��xYw#1swY�uxYw#1swYyxYw)Nr�r�rrrTr[r�r2�xmlcharrefreplace)rU�errorsr�r�s<site>�</site>�
rfrrgrrr@r�r$rYrbrcr�r%r�s   r�test_write_to_text_filezIOTest.test_write_to_text_file�s������	�(�(�&�1��~�~�b�f�f�%<�=�>��
�&�#��
0�A��J�J�q�9�J�-����Q�X�X�&�1��&�$�
�1����Q�V�V�X�'C�D� ��&�#��8K�
L�PQ��J�J�q�9�J�-����Q�X�X�&�M��&�$�
�1����Q�V�V�X�(B�C� ��&�#��
5���J�J�q�9�J�-����Q�X�X�&�6��&�$�
�1����Q�V�V�X�'?�@� �
�1�
0�� �
��M�
L�� �
��6�
5�� �
�sH�/G�&!G"�"/G/�)!G;�$/H�+!H�G�"G,�/G8�;H�H�Hc���|jtjt�tjtj
d��}ttd�5}|j|�|j|j�ddd�ttd�5}|j|j�d�ddd�y#1swY�CxYw#1swYyxYw)Nr�r^r[r�rr�s   r�test_write_to_binary_filez IOTest.test_write_to_binary_file�s������	�(�(�&�1��~�~�b�f�f�%<�=�>��
�&�$�
�1��J�J�q�M����Q�X�X�&� ��&�$�
�1����Q�V�V�X�'A�B� �
� �
�� �
�s�-C�"!C�C�C!c��|jtjt�tjtj
d��}ttd�5}|j|d��|j|j�ddd�ttd�5}|j|j�d�ddd�ttd�5}|j|d��|j|j�ddd�ttd�5}|j|j�d�ddd�y#1swY��xYw#1swY��xYw#1swY�[xYw#1swYyxYw)	Nr�r^rrr[r�r�r�rr�s   r�'test_write_to_binary_file_with_encodingz.IOTest.test_write_to_binary_file_with_encoding�s�����	�(�(�&�1��~�~�b�f�f�%<�=�>��
�&�$�
�1��J�J�q�7�J�+����Q�X�X�&� ��&�$�
�1����Q�V�V�X�'C�D� ��&�$�
�1��J�J�q�<�J�0����Q�X�X�&� ��&�$�
�1����Q�V�V�X�6�
7� �
� �
�� �
�� �
�� �
�s0�/E�$!E�/E&�$!E2�E�E#�&E/�2E;c�<�|jtjt�tjtj
d��}ttd�5}|j|d��|j|j�ddd�ttd�5}|j|j�djd��ddd�ttdd��5}|j|d��|j|j�ddd�ttd�5}|j|j�djd��ddd�y#1swY��xYw#1swY��xYw#1swY�jxYw#1swYyxYw)	Nr�r^r�rr[u7<?xml version='1.0' encoding='utf-16'?>
<site>ø</site>r)�	buffering)rfrrgrrr@r�r$rYrbrcr�r%r:r�s   r�"test_write_to_binary_file_with_bomz)IOTest.test_write_to_binary_file_with_bom�s/�����	�(�(�&�1��~�~�b�f�f�%<�=�>��
�&�$�
�1��J�J�q�8�J�,����Q�X�X�&� ��&�$�
�1����Q�V�V�X�,�,2�F�8�,<�
>� �
�&�$�!�
,���J�J�q�8�J�,����Q�X�X�&�-��&�$�
�1����Q�V�V�X�,�,2�F�8�,<�
>� �
� �
�� �
��
-�
,�� �
�s0�/E.�$0E:�./F�50F�.E7�:F�F�Fc���tj�}tjd�}|j	|�|j|j
�jd�y�Nz"<?xml version="1.0"?><site></site>�site)rr@rVrXr"r�r�rd�rFr`r+s   r�test_read_from_stringiozIOTest.test_read_from_stringio�sE���~�~������E�F���
�
�6���������+�+�V�4rc���tjtjd��}tj�}|j|d��|j
|j�d�y�Nr�rTr)rr@r�rVrXrYr�rZrs   r�test_write_to_stringiozIOTest.test_write_to_stringio�sM���~�~�b�f�f�%<�=�>��������
�
�6�I�
�.�������*�,C�Drc���tj�}tjd�}|j	|�|j|j
�jd�y�Ns"<?xml version="1.0"?><site></site>r)rr@rVrWr"r�r�rd�rFr`r�s   r�test_read_from_bytesiozIOTest.test_read_from_bytesio�sD���~�~����j�j�B�C���
�
�3���������+�+�V�4rc���tjtjd��}tj�}|j|�|j
|j�d�y�Nr�r�)rr@r�rVrWrYr�rZrs   r�test_write_to_bytesiozIOTest.test_write_to_bytesio�sG���~�~�b�f�f�%<�=�>���j�j�l���
�
�3���������)C�Drc��eZdZy)�IOTest.dummyNr�rrr�dummyr�s��rrc��tjd�}|j�}|j|_tj�}|j
|�|j|j�jd�yr
)
rVrXrr%rr@r"r�r�rd)rFr+�readerr`s    r�test_read_from_user_text_readerz&IOTest.test_read_from_user_text_reader�s[�����E�F��������k�k����~�~����
�
�6���������+�+�V�4rc�$�tjtjd��}tj�}|j�}|j|_|j
|d��|j|j�d�yr)	rr@r�rVrXrrYr�rZ)rFr`r+�writers    r�test_write_to_user_text_writerz%IOTest.test_write_to_user_text_writersc���~�~�b�f�f�%<�=�>�������������|�|����
�
�6�I�
�.�������*�,C�Drc�6�tjd�}|j�}|j|_tj�}|j
|�|j|j�jd�tj�}yr)
rVrWrr%rr@r"r�r�rd)rFr�rr`s    r�!test_read_from_user_binary_readerz(IOTest.test_read_from_user_binary_readersg���j�j�B�C��������h�h����~�~����
�
�6���������+�+�V�4��~�~��rc� �tjtjd��}tj�}|j�}|j|_|j
|�|j|j�d�yr)	rr@r�rVrWrrYr�rZ�rFr`r�rs    r� test_write_to_user_binary_writerz'IOTest.test_write_to_user_binary_writers^���~�~�b�f�f�%<�=�>���j�j�l��������y�y����
�
�6���������)C�Drc�t�tjtjd��}tj�}|j�}|j|_d�|_|j|_|j
|d��|j|j�djd��y)Nz<site />c��yr�rrrrr3zBIOTest.test_write_to_user_binary_writer_with_bom.<locals>.<lambda>"s��$rr�rz0<?xml version='1.0' encoding='utf-16'?>
<site />)rr@r�rVrWrrY�seekable�tellr�rZr:r$s    r�)test_write_to_user_binary_writer_with_bomz0IOTest.test_write_to_user_binary_writer_with_boms����~�~�b�f�f�^�4�5���j�j�l��������y�y���&����h�h����
�
�6�H�
�-���������%�v�h�/�	1rc	�R�tjd�}|jtj|d�dj	tj|d���|jtj|d�dj	tj|d���y)Nz<tag>foo</tag>rTrRr�r)rr�r�rr5r6r�s  r�test_tostringlist_invariantz"IOTest.test_tostringlist_invariant)sy���}�}�-�.������K�K��i�(��G�G�B�O�O�D�)�4�5�	7�	
����K�K��h�'��H�H�R�_�_�T�8�4�5�	7rc��tjd�}|jtj|d�d�|jtj|dd��d�|jtj|dd��d�y)Nz<tag>a<x />b<y></y>c</tag>rTz<tag>a<x />b<y />c</tag>T)�short_empty_elementsFz<tag>a<x></x>b<y></y>c</tag>)rr�r�rr�s  r�test_short_empty_elementsz IOTest.test_short_empty_elements2sz���}�}�9�:������K�K��i�(�&�	(�	
����K�K��i�d�K�C�&�	(�	
����K�K��i�e�K�D�*�	,rN)rPrQrRr5r�r�r�rrrrr
rrrrrr r"r%r*r,r/rrrr�r�9sv��CJ�JC�8�	A�A�*C�7�">�(5�E�5�E�
�
�5�E� �E�
1�7�
,rr�c�$�eZdZd�Zd�Zd�Zd�Zy)�ParseErrorTestc�T�|jtj�t�yr)r�rrer�r�s rrMzParseErrorTest.test_subclass@s�����b�m�m�o�{�;rc�t�	tj|�y#tj$r}|cYd}~Sd}~wwxYwr)rr�re)rFrlr�s   r�
_get_errorzParseErrorTest._get_errorCs,��	��M�M�!����}�}�	��H��	�s��7�2�7�7c��|j|jd�jd�|j|jd�jd�|j|jd�jd�y)Nr)r�rz<tag>&foo;</tag>)r�r�zfoobar<)r�r�)r�r4�positionr�s r�test_error_positionz"ParseErrorTest.test_error_positionIs`���������/�8�8�&�A�������);�<�E�E�v�N��������3�<�<�f�Erc��ddlmcmcm}|j	|jd�j|j|j�y)Nrr)	�xml.parsers.expat.errors�parsers�expatr�r�r4�code�codes�XML_ERROR_SYNTAX)rF�ERRORSs  r�test_error_codezParseErrorTest.test_error_codeNs9��1�1��������/�4�4����V�4�4�5�	7rN)rPrQrRrMr4r7r@rrrr1r1?s��<��F�
7rr1c��eZdZd�Zy)�KeywordArgsTestc��tjd�}|j|jdd�|jdd���|j|j	ddd�|j	ddd���|j|jdd�|jdd���|jt
|jdd��t
|jdd����|jtjd�ji�tjdtdd���tjdtdd����tjdtd�	�d�
�tjddd��tjdtdd��dd��g}|D]E}|j|jd�|j|jtdd����Gtj|ddd
di��}|j|jd
d�|jtd�5tjdd�ddd�|jtd�5tjdd��ddd�y#1swY�@xYw#1swYyxYw)Nz
<a>foo</a>r�)�pathrR)rDr	rR�#r)r r�)r�)r )r�rr��key1�value1zmust be dict, not strzI'm not a dict)rr�r�r�r�r�r�r�r�r�rurdrqr�r8)rFr��elementsr�rs     r�test_issue14818zKeywordArgsTest.test_issue14818Ws7���F�F�<� ���������T�*����S�T��:�	<�������C��t�4�����d�t��L�	N�������3��-�������=�	?�����a�j�j��d�3�4��a�j�j�c�d�j�C�D�	F�	
������C��/�/��4��J�J�s�D�c�e�4�5��J�J�s�4�S�U�#;�J�<��J�J�s�D�c�N�u�J�5��J�J�s���J�/��J�J�s�D�c�e�4�3�5�J�I�
���A����Q�U�U�C�(����Q�X�X�t���'?�@���]�]�8�A�;��&�(�9K�]�
L��������6�*�H�5�
�
#�
#�I�/F�
G��J�J�s�,�-�H�
�
#�
#�I�/F�
G��J�J�s�#3�J�4�H�
G�H�
G��
G�
G�s�J5�K�5J>�K
N)rPrQrRrIrrrrBrBTs��5rrBc�"�eZdZed��Zd�Zy)�NoAcceleratorTestc�F�tturtjd��y)Nzonly for the Python version)rrr�SkipTestrls rrmzNoAcceleratorTest.setUpClassys ��
�T�>��#�#�$A�B�B�rc���|jtjjtj
�|jtjjtj
�yr)r�rr�r��types�FunctionTyper&r�s r�test_correct_import_pyETz*NoAcceleratorTest.test_correct_import_pyETsD��	
���d�l�l�3�3�U�5G�5G�H����d�n�n�5�5�u�7I�7I�JrN)rPrQrRr�rmrQrrrrKrKxs���C��C�
KrrKc��eZdZd�Zy)�BoolTestc�~�tjd�}d}|jt|�5t	|�}ddd�|jd�tj
|d�|jt|�5t	|�}ddd�|jd�y#1swY�nxYw#1swY�(xYw)Nz<a style="new"></a>z�Testing an element's truth value will always return True in future versions.  Use specific 'len\(elem\)' or 'elem is not None' test instead.Fr�T)rr�rr��boolr�rq)rFr�r�r~�
new_results     r�test_warningzBoolTest.test_warning�s����M�M�/�0��
N�	��
"�
"�#5�s�
;��!�W�F�<�	
�
�
�f�e�$�	�
�
�a���
�
"�
"�#5�s�
;��a��J�<��
�
�j�$�'�<�
;��<�
;�s�B'�B3�'B0�3B<N)rPrQrRrWrrrrSrS�s��(rrSc�.�tj|fi|��Sr)r�canonicalize)r�r^s  r�c14n_roundtriprZ�s�����S�,�G�,�,rc�"�eZdZdZd�Zd�Zd�Zy)�C14NTestNc�:�|jtd�d�|jtd�d�|jtd�d�|jtd�d�|jtd	�d
�|jtd�d�|jtd
�d�|jtd�d�|jtd�d�|jtd�d�|jtd�d�|jtd�d�d}|jt|�|�d}|jt|�|�d}|jt|�|�y)Nz<doc/>z<doc></doc>z<doc xmlns='uri'/>z<doc xmlns="uri"></doc>z <prefix:doc xmlns:prefix='uri'/>z,<prefix:doc xmlns:prefix="uri"></prefix:doc>z+<doc xmlns:prefix='uri'><prefix:bar/></doc>z7<doc><prefix:bar xmlns:prefix="uri"></prefix:bar></doc>z�<elem xmlns:wsu='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd' xmlns:SOAP-ENV='http://schemas.xmlsoap.org/soap/envelope/' />z
<elem></elem>z*<doc>Hello, world!<!-- Comment 1 --></doc>z<doc>Hello, world!</doc>z<value>&#x32;</value>z<value>2</value>zG<compute><![CDATA[value>"0" && value<"10" ?"valid":"error"]]></compute>zI<compute>value&gt;"0" &amp;&amp; value&lt;"10" ?"valid":"error"</compute>zS<compute expr='value>"0" &amp;&amp; value&lt;"10" ?"valid":"error"'>valid</compute>z{<compute expr="value>&quot;0&quot; &amp;&amp; value&lt;&quot;10&quot; ?&quot;valid&quot;:&quot;error&quot;">valid</compute>z7<norm attr=' &apos;   &#x20;&#13;&#xa;&#9;   &apos; '/>z/<norm attr=" '    &#xD;&#xA;&#x9;   ' "></norm>z6<normNames attr='   A   &#x20;&#13;&#xa;&#9;   B   '/>z=<normNames attr="   A    &#xD;&#xA;&#x9;   B   "></normNames>z7<normId id=' &apos;   &#x20;&#13;&#xa;&#9;   &apos; '/>z1<normId id=" '    &#xD;&#xA;&#x9;   ' "></normId>z5<X xmlns="http://nps/a"><Y targets="abc,xyz"></Y></X>zJ<X xmlns="http://nps/a"><Y xmlns="http://nsp/b" targets="abc,xyz"></Y></X>zN<X xmlns="http://nps/a"><Y xmlns:b="http://nsp/b" b:targets="abc,xyz"></Y></X>)r�rZ�rFr�s  r�test_simple_roundtripzC14NTest.test_simple_roundtrip�s��������1�=�A�����(<�=�)�	+�����(J�K�:�	<�����(U�V�E�	G�����)M�N��	�	
����(T�U�&�	(�����(?�@��	 �����(q�r�W�	Y�����)B�C�
J�	K�����(a�b�?�	A�����(`�a�K�	M�����(a�b�A�	C�F�������,�c�2�Z�������,�c�2�^�������,�c�2rc�"�tjd�}|jt|d��d�|jt|ddg��d�|jt|ddg�	�d
�|jt|ddgdg��d�|jt|dd
dg�	�d�|jt|d
dg��d�|jt|dddg�	�d�|jt|ddg��d�y)Nz�        <root xmlns:x="http://example.com/x">
            <a x:attr="attrx">
                <b>abtext</b>
            </a>
            <b>btext</b>
            <c>
                <x:d>dtext</x:d>
            </c>
        </root>
        T)�
strip_textz�<root><a xmlns:x="http://example.com/x" x:attr="attrx"><b>abtext</b></a><b>btext</b><c><x:d xmlns:x="http://example.com/x">dtext</x:d></c></root>z{http://example.com/x}attr)ra�
exclude_attrszc<root><a><b>abtext</b></a><b>btext</b><c><x:d xmlns:x="http://example.com/x">dtext</x:d></c></root>z{http://example.com/x}d)ra�exclude_tagszb<root><a xmlns:x="http://example.com/x" x:attr="attrx"><b>abtext</b></a><b>btext</b><c></c></root>)rarbrcz4<root><a><b>abtext</b></a><b>btext</b><c></c></root>r�r�zC<root><c><x:d xmlns:x="http://example.com/x">dtext</x:d></c></root>)rcza<root>
    
    
    <c>
        <x:d xmlns:x="http://example.com/x">dtext</x:d>
    </c>
</root>zI<root><a xmlns:x="http://example.com/x" x:attr="attrx"></a><c></c></root>zu<root>
    <a xmlns:x="http://example.com/x" x:attr="attrx">
        
    </a>
    
    <c>
        
    </c>
</root>)r�r�r�rZr^s  r�test_c14n_exclusionzC14NTest.test_c14n_exclusion�sA���o�o�
�

��	
����3�4�0�
�	�	
����3�4�@\�?]�^�
�	�	
����3�4�?X�>Y�Z�
�	�	
����3�4�@\�?]�)B�(C�
E�
�	�	
����3�4�s�C�j�I�
�	�
	
����3�c�3�Z�8�
�	�	
����3�4�?X�Z]�>^�_�
�	�	
����3�.G��-M�N�
�
	rc�	�tdd��}ttjj|�}ttj|��D�cgc]}|jd�r|dd��}}|D�cgc]}|jd�r|��}}|D��cic]�}|jd�rv|tj||�dz�j�D�cic]?}|jjd�d	|jxsd
j�|f��Ac}���}}}|D��cic]W}||D�cgc]H}|jd|�d��r1|j!dd
�d	|vr|||j!dd
�d	f��Jc}��Y}	}}|j#dt%|	j'�D�
�cgc]}
|
D]}|���
c}}
��d.d�}|	j)�D�]�\}}
|
D�]\}}
||
d�dk(}||
d�dk(}||
d�dk(}d|
vr�|
dd
j+d�D�cgc](}d|j-d��d|j-d�����*}}|
dd
j+d�D�cgc](}d|j-d��d|j-d�����*}}ndx}}dj	d�t|
j)��D��}|j/|�d|�d��5|dk(r|s|j1d |���|d!k(r|s|j1d |���d|
vr,|
dd
j3d"�	�|j1d#|���||dz�}|d$k(rqt5|d%�d&�5}t5|d&�5}t7j8|j;�j=d'|j;���}ddd�ddd�tj?||||||�(�}t5||dz�d)d*�+�5}|j;�}|d,k(r$|j=d-d
�}|j=d-d
�}ddd�|j#|�ddd�������ycc}wcc}wcc}wcc}}wcc}wcc}}wcc}}
wcc}wcc}w#1swY��xYw#1swY��xYw#1swY�rxYw#1swY���xYw)/Nzc14n-20rrz.xmlr��in�c14n�}r�rR�out_r9r��c�0�|j||df�dS)Nrr)rw)�config�option_namer	s   r�
get_optionz+C14NTest.test_xml_c14n2.<locals>.get_optionAs���:�:�k�G�R�=�9�!�<�<r�IgnoreComments�true�
TrimTextNodes�
PrefixRewrite�
sequential�
QNameAwarez/{http://www.w3.org/2010/xml-c14n2}QualifiedAttr�{�NS�Namez){http://www.w3.org/2010/xml-c14n2}Element�,c3�jK�|]+\}\}}|�d|xsdjd�|D�������-y�w)�=rxc3�XK�|]"}|jjd�d���$y�w)rhr�N)rd�split)r�r�s  rr�z4C14NTest.test_xml_c14n2.<locals>.<genexpr>.<genexpr>\s#����/W�h�������C�0@��0D�h�s�(*N)r5)r�ryr�rs    rr�z*C14NTest.test_xml_c14n2.<locals>.<genexpr>[sB����(�3I�/��/�u�h��f�A�e�W�s�x�x�/W�h�/W�'W�X�Y�3I�s�13�(�)�
inNsRedeclz2Redeclared namespace handling is not supported in �inNsSuperfluousz.{http://www.w3.org/2010/xml-c14n2}XPathElementz2QName rewriting in XPath text is not supported in �inC14N5z	world.txtr[s&ent2;)�	from_file�
with_commentsra�rewrite_prefixes�qname_aware_tags�qname_aware_attrs�rr�r�inC14N3z attr="default"r) r
rr8rDr5r�listdir�endswith�
startswithrr"r�rdr|r�r��rsplitr�r��valuesr�r�rwr�r	r�r$rVrWr%r7rY)rF�datadir�	full_path�filename�files�input_files�option�configs�
input_file�tests�output_files�output_filernrl�
keep_commentsrar�r��qattrs�qtags�config_descrr,�entity_filer�r�s                         r�test_xml_c14n2zC14NTest.test_xml_c14n2sx���9�]�;���B�G�G�L�L�'�2�	�/5�b�j�j��6I�/J�/�/J�8��%�%�f�-��#�2��/J��/�&+�
�%*���"�"�4�(�
�U�	�
�"�

�"���"�"�6�*�

�!�h�h�y��':�V�'C�D�L�L�N��O�F��
�
� � ��%�b�)�V�[�[�->�B�,E�,E�,G��+P�P�N��
�
"�
	�
�"*�
�*�
�

� %�� %�H��&�&��j�\��';�<��O�O�C��+�B�/�7�:��7�8�?�?�3��#:�2�#>�?�@� %��
�*�	�
�	
����S�,1�L�L�N�"-�,:�L�+��
�+�
�N�"-�.�	/�	=�).���
�$�J��'3�#��V� *��,�!.�17�!8�
�'��O�-�06�7�
�#-��O�$-�0<�$=� ��6�)�#)��"6�q�"9�"A�"A�M�#O��#O�B��R�V�V�D�\�N�"�R�V�V�F�^�,<�=�#O���#)��"6�q�"9�"A�"A�G�#I��#I�B��R�V�V�D�\�N�"�R�V�V�F�^�,<�=�#I���&*�)�E�F� #�x�x�(�39�&�,�,�.�3I�(� ��
�\�\�[�M��<�.��"B�C�!�\�1�:J��
�
�P�Q\�P]�^�`�!�%6�6�?O��
�
�P�Q\�P]�^�`�#�v�-�&��2F�q�2I�2N�2N�L�3N�UY�3Z��
�
�P�Q\�P]�^�`�"�*�v�"5�6�A�!�Y�.�!�)�K�"8�$�?�;�!%�a���!�$&�J�J�q�v�v�x�/?�/?�	�;�K[�K[�K]�/^�$_��"/�@��?�?�"#�&3�#-�)9�).�&�+�J�D��i��f�(<�=�s�V�T�XY�#$�6�6�8��%��2�'/�'7�'7�8I�2�'N�H�#'�<�<�0A�2�#F�D�U��$�$�X�t�4�AD�C�7(4�)6��E/��
��
��
����
��"-�� ��
�<"/���@�?��U�T��5D�C�s��Q/�5Q4�AQ>�AQ9�Q>�,
R	�6A
R�R	�/R�0-R�8-R�2B	S�;
R+	�AR�
R+	�:S�:R7	�S�9Q>�R	�R(�$R+	�+R4
�0S�7S
�<S�S
)rPrQrR�maxDiffr_rdr�rrrr\r\�s���G�
&3�PG�`b5rr\c��tddg��a|�t}|ad�}tj|�ddlm}tjj}|j�}tj|j|�tj|j�|j}tjt|d|�|j�|_ttd�rWtjtj tj"�}tjtjg|���yy)	NrIrJ)�blockedc��dxaayrrrrr�cleanupzsetUpModule.<locals>.cleanup�s�����TrrrCr��_set_factories)rrrr�addModuleCleanuprErDro�_namespace_maprrUr�r��setattrr�r�rrr�)�moduler�rDr��
nsmap_copyr��
old_factoriess       r�setUpModuler��s����6�(6�'7�9�D�
�~���
�B��
���g�&�&��!�!�0�0�E�����J����e�l�l�J�7����e�k�k�*��#�#�J����g�{�H�j�I�#���*�K���r�#�$��)�)�"�*�*�b�e�e�<�
��!�!�"�"3�"3�D�m�D�%r�__main__)TrTr)[rr1r8rVr�r�r8rqrrpr�rOr�
unittest.mockr!r�r��
contextlibrrrrr/r�test.supportrr	r
rrr
�test.support.import_helperr�test.support.os_helperrrrr�r:�UnicodeEncodeErrorrMr#r�r�r�rDr�r@rAr�rr&r4r<�TestCaser>rarfrir�r�r�format�escaper1rr5r�rr�r�r�r�r�r�r�rrr�r�r�r�r1rBrKrSrZr\r�rP�mainrrr�<module>r�s
�����	���	�
��
�������"��%��"�(�C�C�:�)���	���,�}�=��A����'�"��_�]�C���3�M�J���
����
���"�
������E�#(��4�
L��"�"�
L��&�=�=�@YP�h�'�'�YP�x$l9��)�)�l9�b	��������	������!����������������������F�;�4�;�;�~�t�,�-�
	���	'��	"�#�����X����X����	����	����	��p7�8�$�$�p7�lm?�x� � �m?�hB4���(9�(9�B4�Jl�_�h�&7�&7�l�^	
��
�
�s�
��S��E��(�*;�*;�E�P5.�(�+�+�5.�pv:�h�'�'�v:�r](�h�'�'�](�@t.�h�'�'�t.�nQ:�H�%�%�Q:�hE��*�*�E�d,��*�*�d,�LC,�X�
�
�C,�L7�X�&�&�7�* 5�h�'�'� 5�HK��)�)�K� (�x� � �(�(-�`5�x� � �`5�H"E�J�z���H�M�M�O���wK�A�
�(�
�
�?�
@�@�A�s�M�M&

Youez - 2016 - github.com/yon3zu
LinuXploit